Как получить расширенные REtweets в Node.js с помощью Twitter API?(Получается только МАКС 140 символов) - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь получить расширенные ретвиты, но, похоже, я не могу получить это дополнительное поле с именем retweeted_status в качестве параметра в результате.Я не получаю никаких ошибок при включении параметра с именем «retweeted_status», и я не знаю, существует ли он даже как параметр в Node.js , так как документы API Twitter не содержат примеров или ясной информации.для ретвитов, и я попытался реализовать методы, написанные на других языках программирования, которые я искал в Google , но в конце не получил хороших результатов.( Примечание: tweet_mode работает только для твитов, а не RETweets! )

То, что я пробовал:

retweeted_status: 'extended' //doesn't work but node.js doesn't give an error
retweeted_status: true       //doesn't work but node.js doesn't give an error
retweeted_status: 1          //doesn't work but node.js doesn't give an error

Мой код следующий ( Он никогда не входит вif-условие и если оно выполнено, выдает ошибку, которую я упоминаю в коде ):

var params = {q: '@Avengers', count: 100, include_rts: 0, tweet_mode: 'extended', retweeted_status: 'extended'}; 
client.get('search/tweets', params, function(error, tweets, response) {
    if (!error) {
      console.log(tweets);
      for(var i=0; i < params.count; i++){

        if (tweets.retweeted_status){ //It never enters this condition
                                      //even if it does I get this error
               //TypeError: Cannot read property 'statuses' of undefined tweets.statuses[i]
          tweets = tweets.retweeted_status;
          var tweet = (JSON.stringify(tweets.statuses[i].full_text)+"\n");
          var string = tweet.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '');
          console.log('hi');
        }
        else{
          var tweet = (JSON.stringify(tweets.statuses[i].full_text)+"\n");
          var string = tweet.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '');
          console.log('hi2');
        }

        fs.appendFile("tweet.txt", string, function (err) {
          if (err) throw err;
          console.log('Saved!');
        }); 
      }
    }
});

Я несколько часов заглядывал на этот сайт https://dev.to/kehers/formatting-tweets-a-look-at-extended-tweets-retweets-and-quotes-n5j и пытался сделать несколькокод (который я уже предоставил выше), который не работал, так как оператор IF игнорировался.При получении твита должен быть указан дополнительный параметр «retweeted_status», как показано ниже:

{
  "created_at": "Sun Mar 11 12:00:27 +0000 2018",
  "id": 972804442667003900,
  "full_text": "RT @jasongorman: As a physics grad, I understand how snooker works at a level I imagine a lot of pro snooker players don't. But I suck at s…",
  "truncated": false,
  "display_text_range": [...],
  "entities": {...},
  "retweeted_status": { // <======================= I am not getting this extra parameter!
    "created_at": "Sun Mar 11 08:10:46 +0000 2018",
    "id": 972746641957642200,
    "full_text": "As a physics grad, I understand how snooker works at a level I imagine a lot of pro snooker players don't. But I suck at snooker. Understanding != ability.",
    "truncated": false,
    "display_text_range": [0, 155],
    "entities": {
      "hashtags": [],
      "symbols": [],
      "user_mentions": [],
      "urls": []
    },
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...