Javascript 如何显示用户';s自己转发他人的邮件';s在discord机器人中推特?

Javascript 如何显示用户';s自己转发他人的邮件';s在discord机器人中推特?,javascript,node.js,twitter,discord,discord.js,Javascript,Node.js,Twitter,Discord,Discord.js,我正在尝试向我的discord机器人添加一个转发功能,这样它就可以显示用户转发的帖子。我曾尝试过这样做,但当我运行代码时,它仍然只发布新的推文。有人能帮忙排除故障吗 让我试着简化这个场景,因为我想可能很难说出我真正想要实现的目标 想象一下,如果我是一个名为@hojitea的twitter用户(举个例子)。我在twitter上关注一个名为@readDonaldTrump的用户 我希望我的discord机器人不仅能获得@realDonaldTrump发布的新推特,还能获得他所做的转发 就像这张图片

我正在尝试向我的discord机器人添加一个转发功能,这样它就可以显示用户转发的帖子。我曾尝试过这样做,但当我运行代码时,它仍然只发布新的推文。有人能帮忙排除故障吗

让我试着简化这个场景,因为我想可能很难说出我真正想要实现的目标

  • 想象一下,如果我是一个名为@hojitea的twitter用户(举个例子)。我在twitter上关注一个名为@readDonaldTrump的用户
  • 我希望我的discord机器人不仅能获得@realDonaldTrump发布的新推特,还能获得他所做的转发
  • 就像这张图片(我想在我的discord机器人中得到这个转发):
  • 请注意,在图中,它表示“Donald J.Trump Retweeted”,这是我希望我的discord机器人也能显示的内容,而不是任何其他用户。根据我目前的代码,这是无法实现的
现在,它看起来是这样的(整个源代码的一个片段):

//设置必要的库
require('dotenv').config();
const Discord=require('Discord.js');
const bot=new Discord.Client();
bot.commands=new Discord.Collection();
const botCommands=require('./commands');
const Twitter=require('twit')
//设置discord和twitter令牌等等等等。。。
const twitterClient=newtwitter(twitterConf);
//创建一个流来跟踪tweet
const stream=twitterClient.stream('status/filter'{
跟随:“25073877”,//donaldtrump行波管id
});
const dest='765217504305872896'//将TWT流式传输到#推特频道
//TWITTER主进程
//直接流到那个频道
stream.on('tweet',tweet=>{
if(tweet.retweeted_status//以阻止其他用户的tweet,并且仅从用户处获取
||tweet.in_回复_至_状态_id_str
||tweet.in_回复_至_用户_id
||tweet.in_回复_至_用户_id_str
||tweet.in_reply_to_screen_name)返回true;
if(tweet.current_user_retweet){//显示用户转发的消息
const twitterRetweetMessage=`**${tweet.user.name}(@${tweet.user.screen\u name})新建转发!**\nhttps://twitter.com/${tweet.user.screen_name}/status/${tweet.id_str}`
bot.channels.cache.get(dest.send)(twitterRetweetMessage);
log(“@${tweet.user.screen_name}!”发布了一条新的转发消息)
返回false;
}
const twitterMessage=`**${tweet.user.name}(@${tweet.user.screen\u name})新建tweet!**\nhttps://twitter.com/${tweet.user.screen_name}/status/${tweet.id_str}`
bot.channels.cache.get(dest.send)(twitterMessage);
log(“@${tweet.user.screen_name}!”发布了一条新的tweet)
返回false;
});
//确认bot已连接
bot.on('ready',()=>{
log(`Logged as${bot.user.tag}!`);
});
免责声明:我不是美国公民。所使用的用户名纯粹是一个示例,而不是美国选举提案。

根据(此链接用于
GET statuses/show/:id
,但所有Tweet对象都遵循相同的格式),
只有在验证用户(
@hojitea
)转发Tweet时,才会提供当前用户转发。由于Tweet对象是在发布Tweet后直接提供的,因此验证用户几乎不可能已经转发了Tweet

如果要解析转发,必须从大的
if
语句中删除
tweet.retweeted\u状态。这还将显示该用户推文的所有转发,因此要过滤掉其他用户的推文,只需检查您订阅的用户ID是否等于推文对象中的用户ID(
tweet.user.ID
)。在处理任何tweet之前,您都希望将其放在前面提到的
if
语句之前

要检查Tweet是否为转发,请使用if语句的
Tweet.retweeted_status
。此值始终为转发提供,但对于非转发始终为空

/。。。
if(tweet.retweeted_status){//如果tweet是转发,则为true。
const twitterRetweetMessage=`**${tweet.user.name}`
// ...

附言:如果我有点挑剔的话,信息应该是
“{Tweet.user.screen\u name}转发了一条新的Tweet!”
,因为转发的用户技术上没有发布Tweet。

那么它看起来会是什么样子吗?你介意帮我检查一下吗?