【问题标题】:Twitter API reply (in_reply_to_status_id) not working properlyTwitter API 回复 (in_reply_to_status_id) 无法正常工作
【发布时间】:2014-07-09 00:22:06
【问题描述】:

我正在使用 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) {});

data 是我从搜索请求中获得的推文对象。

有什么帮助吗?

【问题讨论】:

  • 它出现在什么流上?

标签: javascript node.js twitter


【解决方案1】:

参数in_reply_to_status_id 的值必须是推文 ID 才能保留对话。您在此处传递的是用户 ID 而不是推文 ID。

另外,特别是在使用 JavaScript 时,请确保使用字符串化 ID id_str 而不是 id 以避免任何整数溢出问题。

因此,下面是更新后的带有字符串化推文 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) {});

【讨论】:

  • id_str 而不是 id 对我来说是这个问题的关键。浪费了这么多时间!不错。
【解决方案2】:

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

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

其中in_reply_to_status_id 参数包含id_str 的值而不是特定推文的idstatus 参数包含"@"+user.screen_name+"message" 的值。

【讨论】:

  • 自 2019 年起,如果 @user.screen_name 在自己的帖子上进行了线程化,则不需要它。
【解决方案3】:

您应该在推文的状态中添加回复推文的@username。

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

【讨论】:

    猜你喜欢
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2012-08-19
    • 1970-01-01
    相关资源
    最近更新 更多