簡體   English   中英

在Twitter中使用node.js API回復Twitter的直接消息

[英]Reply to direct messages of twitter using node.js API in Twitter

我正在使用twit npm包讀取直接消息

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

我想回復收到的directMsg ,是否可以使用directMsg任何方法調用來實現,或者建議使用任何其他的nodejs包來實現該方法。

無法提供確切的代碼解決方案,但方法是實施以下步驟

  1. directMsg對象獲取USER_ID屬性
  2. 使用Twit Rest API方法T.post(path, [params], callback)通過USER_ID向用戶發送直接消息
  3. 使用Twitter API文檔來了解發送直接消息所需的內容,您需要像文檔中那樣正確提供參數

在此處輸入圖片說明

所以代碼看起來像這樣

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

希望對您有幫助。

即使我遇到了,這也是您要做的。 偵聽user流中的direct_message並檢索sender.screen_namerecipient.screen_name sender.screen_name並確認它不相等+您需要上面sender.id所述的sender.id。

  // 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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM