kyr*_*kyr 2 javascript twitter node.js
我正在使用Twit库在node.js中构建一个Twitter机器人.但是,当我想发布一条推文的回复时,它会出现,但不会出现在回复流中.
我的代码:
twitter.post('statuses/update', { in_reply_to_status_id: data.statuses[0].user.id, status: '@' + data.statuses[0].user.screen_name + ' -some message-' }, function (err, data, res) {});
Run Code Online (Sandbox Code Playgroud)
data我从搜索请求获得的推文对象在哪里.
对此有何帮助?
小智 8
参数的值in_reply_to_status_id必须是Tweet ID才能保留对话.您在此处传递了用户ID而不是推文ID.
此外,特别是在使用JavaScript时,请确保使用字符串化ID id_str而不是id避免任何整数溢出问题.
因此,下面是更新的代码行,其中包含字符串化的Tweet ID:
twitter.post('statuses/update', { in_reply_to_status_id: data.statuses[0].id_str, status: '@' + data.statuses[0].user.screen_name + ' -some message-' }, function (err, data, res) {});
Run Code Online (Sandbox Code Playgroud)
我在回复特定推文时遇到了同样的问题。以下是解决我的问题的示例参数:
var username = user.screen_name;
var params= {
in_reply_to_status_id:'715236671738908672',
status:`@${username} ${message}`
}
Run Code Online (Sandbox Code Playgroud)
其中in_reply_to_status_id参数包含值id_str而不是id特定推文,并且status参数包含值"@"+user.screen_name+"message"。
小智 5
您应该在推文状态中添加回复推文的@用户名。
注意:除非在状态文本中提及此参数引用的推文作者,否则此 ( in_reply_to_status_id ) 参数将被忽略。因此,您必须在更新中包含@username ,其中 username 是所引用推文的作者。