2016-07-05 52 views
0

我使用的节点库回复流中的鸣叫,当它正常工作时,鸣叫的回复不会在时间轴上显示为回复,而会显示为一个独立的推文,与之前的会话没有关联。节点回复鸣叫并没有真正回复

这里是我的代码:

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!"); 
     } 
    } 
} 

回答

0

为了回复到使用Twitter的API的时间表显示,你需要以下条件:

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

此外,还需要在参数in_reply_to_status_id您的tweet status。看到更新下面的代码,它现在应该保持对话:

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!"); 
     } 
    } 
} 
+0

谢谢你这一点,遗憾的是未能奏效,因为定义的变量是使用它的功能外。我不知道该把它放在哪里 – babusi

+0

我把'tweetIt'函数移到了'tweetEvent',它工作。谢谢 – babusi

+0

哎呀!我当时很急。我将编辑以反映变化。很高兴它工作! – filmplane