2017-03-02 78 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();