2017-03-02 30 views
0

我使用twit NPM包读取直接消息回复如何使用Node.js API在Twitter上

var stream = T.stream('user', { stringify_friend_ids: true }) 
stream.on('direct_message', function (directMsg) { 
console.log(directMsg) 
} 

我要回复directMsg收到直接叽叽喳喳的消息,是有强烈抵制的任何方法调用,它可以被用来实现或任何其他nodejs包推荐实现相同。

回答

1

不能提供确切的代码解决方案,但该方法是执行以下步骤

  1. 获取USER_ID财产directMsg对象
  2. 使用蠢的REST API方法T.post(path, [params], callback)发送私信给用户与USER_ID
  3. 使用Twitter API documentation了解你需要发送什么直接消息,你需要正确提供参数,如文档

enter image description here

因此,代码会看起来像这样

T.post("direct_messages/new", { 
    user_id: USER_ID, // USER_ID is parameter from directMsg object 
    text: 'YOUR_REPLY' 
}); 

希望它会帮助你。

+0

这工作..谢谢指导:) –

+0

欢迎您:) –

+0

我要补充'SCREEN_NAME:eventMsg.direct_message.recipient_screen_name',使其工作 –

0

即使我遇到它,这是你必须做的。 聆听的user流并检索sender.screen_namerecipient.screen_name并验证它不等于+您需要sender.id,如上面的@RashadIbrahimov所述。

// Reply to Twitter messages 
function replyToDirectMessage(){ 

    //get the user stream 
    var stream = T.stream('user'); 

stream.on('direct_message', function (eventMsg) { 
    var msg = eventMsg.direct_message.text; 
    var screenName = eventMsg.direct_message.sender.screen_name; 
    var userId = eventMsg.direct_message.sender.id; 

    // reply object 
    var replyTo = { user_id: userId, 
    text: "Thanks for your message :)", 
    screen_name: screenName }; 

    console.log(screenName + " says: " + msg); 

    // avoid replying to yourself when the recipient is you 
    if(screenName != eventMsg.direct_message.recipient_screen_name){ 

    //post reply 
    T.post("direct_messages/new",replyTo, function(err,data,response){ 
      console.info(data); 
     }); 
    } 
}); 
} 

,并调用它 replyToDirectMessage();