【问题标题】:Node reply to tweet does not actually reply节点对推文的回复实际上并没有回复
【发布时间】:2016-11-07 00:29:28
【问题描述】:

我正在使用Twit Node 库在流中回复推文,虽然它运行良好,但推文回复不会在时间轴上显示为回复,而是显示为独立推文,未链接到之前的对话。

这是我的代码:

function tweetEvent(eventMsg) {
    var replyto = eventMsg.in_reply_to_screen_name;
    var text = eventMsg.text;
    var from = eventMsg.user.screen_name;

    console.log(replyto + ' ' + from);

    if( (text.indexOf('myhandle') >= 0) || (from != 'myhandle')) {
        var reply = replies[Math.floor(Math.random() * replies.length)];
        var newtweet = '@' + from + ' ' + reply;
        tweetIt(newtweet);
    }
}

function tweetIt(txt) {

    var tweet = {
      status: txt
    }

    T.post('statuses/update', tweet, tweeted);

    function tweeted(err, data, response) {
      if (err) {
        console.log("Something went wrong!");
      } else {
        console.log("It worked!");
      }
    }
}

【问题讨论】:

    标签: node.js twitter bots


    【解决方案1】:

    为了使用 Twitter API 在时间轴中显示回复,您需要以下内容:

    // the status update or tweet ID in which we will reply
    var nameID  = eventMsg.id_str;
    

    还需要tweet status 中的参数in_reply_to_status_id。请参阅下面的代码更新,它现在应该保留对话:

    function tweetEvent(eventMsg) {
        var replyto = eventMsg.in_reply_to_screen_name;
        var text = eventMsg.text;
        var from = eventMsg.user.screen_name;
        // the status update or tweet ID in which we will reply
        var nameID  = eventMsg.id_str;
    
    
        console.log(replyto + ' ' + from);
    
        if( (text.indexOf('myhandle') >= 0) || (from != 'myhandle')) {
            var reply = replies[Math.floor(Math.random() * replies.length)];
            var newtweet = '@' + from + ' ' + reply;
            tweetIt(newtweet);
        }
    
        function tweetIt(txt) {
    
            var tweet = {
              status: txt,
              in_reply_to_status_id: nameID
            }
    }
    
        T.post('statuses/update', tweet, tweeted);
    
        function tweeted(err, data, response) {
          if (err) {
            console.log("Something went wrong!");
          } else {
            console.log("It worked!");
          }
        }
    }
    

    【讨论】:

    • 谢谢你,不幸的是它无法工作,因为定义的变量在使用它的函数之外。我不知道该把它放在哪里
    • 我将 tweetIt 函数移至 tweetEvent 并且它起作用了。谢谢
    • 哎呀!我当时很急。我将进行编辑以反映更改。很高兴它成功了!
    猜你喜欢
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2017-01-30
    • 2015-03-13
    • 1970-01-01
    • 2011-12-04
    相关资源
    最近更新 更多