使用twit和Node.js回复推文

时间:2017-06-21 07:45:57

标签: javascript json node.js twitter

我正在使用Twit Node.js API。 我想要做的是回复与某个关键字匹配的推文。我希望我的回复推文显示在下面的其他推文中。就像你通过应用程序或网站回复。

我的代码就在这里:

var reply = function(tweet) {
  var res = {
    status: 'This is a tweet',
    in_reply_to_status_id: tweet.id_str
  };

  twitter.post('statuses/update', res,
    function(err, data, response) {
      console.log(data);
    }
  );
}

状态正确写入回复JSON但in_reply_to_status_id仍为null。这条推文被发布到了机器人账户,但没有回复推文应该回复。

为什么它不起作用?

是的,我已经尝试写入in_reply_to_status_id_str,我试图让tweet.id_str成为一个字符串。

我有谁知道我错过了什么?

谢谢!

我的回复JSON就在这里:

{ created_at: 'Wed Jun 21 07:44:22 +0000 2017',
  id: 877431986071142400,
  id_str: '877431986071142400',
  text: 'This is a tweet',
  truncated: false,
  entities: { hashtags: [], symbols: [], user_mentions: [], urls: [] },
  source: '<a href="https://example.com" rel="nofollow">Spatinator</a>',
  in_reply_to_status_id: null,
  in_reply_to_status_id_str: null,
  in_reply_to_user_id: null,
  in_reply_to_user_id_str: null,
  in_reply_to_screen_name: null,

如果你需要更多的响应JSON,请告诉我。

1 个答案:

答案 0 :(得分:2)

解决方案是将tweet.user.screen_name提及到响应json的状态。 像这样工作:

var reply = function(tweet) {
  var res = {
    status: 'This is a tweet @' + tweet.user.screen_name,
    in_reply_to_status_id: '' + tweet.id_str
  };

  twitter.post('statuses/update', res,
    function(err, data, response) {
      console.log(data);
    }
  );
}