Twitter API reply (in_reply_to_status_id)工作不正常

Twitter API reply (in_reply_to_status_id) not working properly

本文关键字:reply id 不正常 status 工作 to in Twitter API      更新时间:2023-09-26

我正在使用Twitter库在node.js中构建Twitter bot。但是,当我想对tweet发表回复时,它出现了,但不在回复流中。

我代码:

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) {});

其中data是我从搜索请求中获得的tweet对象。

有什么帮助吗?

参数in_reply_to_status_id必须为Tweet ID,以保持对话。您在这里传递的是用户ID而不是Tweet 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) {});

我在回复一条推特时也遇到了同样的问题。以下是解决我的问题的示例参数:

var username = user.screen_name;
var params= {
  in_reply_to_status_id:'715236671738908672',
  status:`@${username} ${message}`
}

其中in_reply_to_status_id参数的值为id_str而不是特定tweet的id, status参数的值为"@"+user.screen_name+"message"

您应该在tweet的状态中添加@用户名。

注意:这个(in_reply_to_status_id)参数将被忽略,除非该参数引用的Tweet的作者在状态文本中被提及。因此,您必须在更新中包含@username,其中username是引用Tweet的作者。