如何使用Node.js请求hashtag热门推文的URL,用于Discord机器人开发
Discord机器人拉取指定Hashtag热门推文实现方案
官方Twitter API实现方法
你可以使用Twitter API v2的搜索接口实现需求,该接口原生支持按hashtag筛选内容:
- 核心调用的是
search_recent_tweets接口,请求参数的query字段直接传入#目标hashtag即可筛选带对应标签的推文 - 需要返回热门内容时,将
sort_order参数设置为popular,接口会按热度优先级返回匹配结果 - 基础免费版接口仅支持拉取最近7天的内容,需要更长时间范围的内容需升级付费套餐
以下是Python生态下用Tweepy库调用的示例代码:
import tweepy # 初始化客户端,需填入你在Twitter开发者平台申请的Bearer Token twitter_client = tweepy.Client(bearer_token="YOUR_TWITTER_BEARER_TOKEN") # 拉取带#ExampleTag的10条热门非转推推文 resp = twitter_client.search_recent_tweets( query="#ExampleTag -is:retweet", max_results=10, sort_order="popular" ) # 遍历获取推文内容 hot_tweets = [tweet.text for tweet in resp.data]
可集成到Discord机器人的替代方案
如果不想对接官方Twitter API,可以选择以下方案:
- 对接封装好的社交媒体内容聚合服务,这类服务已经完成了多平台内容的抓取和结构化处理,仅需通过HTTP请求传入hashtag参数即可拿到整理好的热门推文数据,适配成本极低
- 自己实现定时爬虫任务,提前定向抓取你需要的hashtag下的热门内容存储到本地数据库,机器人收到用户请求时直接从本地库返回数据,还可以避免官方API的调用额度限制
Discord侧集成逻辑
不管选用哪种数据源,Discord侧的逻辑都是通用的,你可以用discord.py或者pycord库注册触发命令,以下是示例逻辑:
import discord from discord.ext import commands # 初始化Discord机器人 bot = commands.Bot(command_prefix="!", intents=discord.Intents.all()) # 注册!get_hot_tweets 命令,接收hashtag作为参数 @bot.command() async def get_hot_tweets(ctx, hashtag: str): # 调用你自己实现的拉取推文函数,返回热门推文列表 tweets = fetch_hot_tweets(hashtag) for tweet in tweets: # 用Discord embed格式美化输出 embed = discord.Embed( title=f"#{hashtag} 热门推文", description=tweet["content"], url=tweet["tweet_url"] ) await ctx.send(embed=embed) # 启动机器人,填入你在Discord开发者平台申请的机器人Token bot.run("YOUR_DISCORD_BOT_TOKEN")
内容的提问来源于stack exchange,提问作者Wolf
相关产品推荐
相关产品推荐

