Неопределенная ошибка из терминала при запуске Twitter-бота - PullRequest
0 голосов
/ 06 апреля 2020

Я создал этого Twitter-бота в Javascript, следуя нескольким учебникам.

Кто-нибудь знает, почему я продолжаю получать эту ошибку в терминале, я пытаюсь запустить ее, набрав: node bot. js?

console.log(err[0].message);
                   ^

TypeError: Cannot read property 'message' of undefined
    at /Users/stanleyjeong/Desktop/_CODING/twitter-bots/bot-take2/bot.js:20:36
    at Request._callback (/Users/stanleyjeong/Desktop/_CODING/twitter-bots/bot-take2/node_modules/twitter/lib/twitter.js:220:14)
    at Request.self.callback (/Users/stanleyjeong/Desktop/_CODING/twitter-bots/bot-take2/node_modules/request/request.js:185:22)
    at Request.emit (events.js:315:20)
    at Request.<anonymous> (/Users/stanleyjeong/Desktop/_CODING/twitter-bots/bot-take2/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:315:20)
    at IncomingMessage.<anonymous> (/Users/stanleyjeong/Desktop/_CODING/twitter-bots/bot-take2/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:421:28)
    at IncomingMessage.emit (events.js:327:22)
    at endReadableNT (_stream_readable.js:1201:12)

Вот мой файл JS бота:

const Twitter = require('twitter');
const config = require('./config.js')

// configuration is set up.
const Tweet = new Twitter(config);

    const params = {
        q: '#funkydancing OR #polyrhythms OR #puppies',      // hashtag I'm searching for
        count: 10,              // number of tweets I'd like returned to me. NOTE: it's best practice to keep the search count number to 10 or under. This prevents spam abuse with your Twitter account, hitting the retweet limit too quickly, and getting your account suspended.
        result_type: 'recent',  // only the most recent results
        lang: 'en'              // only in english. 
    }

Tweet.get('search/tweets', params, function(err, data, response) {
    if(!err){
        for(let i = 0; i < data.statuses.length; i++){
            let id = { id: data.statuses[i].id_str }
            Tweet.post('statuses/retweet', id, function(err, response){
              if(err){
                console.log(err[0].message);
              }
              else{
                let username = response.user.screen_name;
                let tweetId = response.id_str;
                console.log('Retweeted: ', `https://twitter.com/${username}/status/${tweetId}`)
              }
            });
          }
    } else {
      console.log(err);
    }
  })

Файл config. js просто содержит объект, содержащий мои ключи API и секретные ключи.

К вашему сведению, я установил зависимость от Twitter, и мои ключи API и секретные ключи недавно установлены.

Спасибо!

...