【问题标题】:Retrieving more than 100 tweets from twitter API using nodejs使用 nodejs 从 twitter API 检索超过 100 条推文
【发布时间】:2020-03-10 14:21:06
【问题描述】:

我正在尝试在 nodejs 中从 Twitter 检索 100 多条推文。但是,我不断得到一个空数组。我试过这样:

const MAX_TWEETS = 200;
const TWEETS_PER_REQUEST = 100;

async function retrieveTweets(T,parameters,tweets_data,request_num){
    T.get('search/tweets', parameters, function (error, data){
        let lowest_id = null;
        let tweets = data.statuses;
        for(var i=0;i<tweets.length; i++){
            tweets_data[request_num*TWEETS_PER_REQUEST+i] = tweets[i].text;
            if(!lowest_id || lowest_id>tweets[i].id){
                lowest_id = tweets[i].id;
            }
        }
        parameters.max_id = lowest_id;
    }); 
}

async function twitter(){
    var config = require('./config.js');
    var Twit = require('twit');
    var T = new Twit(config);

    var parameters = { q: 'obama', count: TWEETS_PER_REQUEST, result_type: 'recent' };
    var tweets_data= new Array(MAX_TWEETS);
    await retrieveTweets(T,parameters,tweets_data,0);
    await retrieveTweets(T,parameters,tweets_data,1);
    console.log(tweets_data);
}

twitter();

我不知道为什么我总是得到一个空数组。任何帮助将不胜感激。

编辑:我确实从 get 请求中获得了结果,但是当我尝试将它们保存在 tweets_data 数组中时,我得到一个空数组并且结果最终没有保存。

【问题讨论】:

  • 首先访问浏览器中的 URL,您是否收到任何推文?然后添加一些错误处理,看看 Twitter 实际返回什么
  • @adeneo 我确实从 Twitter API 获得了结果。当我在 get 请求中添加 console.log(tweets) 时,我得到了结果,但在 twitter() 函数中它显示一个空数组。
  • 您将tweet_sizes 传递给retrieveTweets 而不是tweets_data 这是您想要的吗?
  • @JDunken noo..这是一个错字。我修好了,谢谢。

标签: javascript node.js asynchronous twitter async-await


【解决方案1】:

您没有正确处理承诺。 get 请求可以返回一个 Promise,所以不要使用 async 将函数更改为

function retrieveTweets(T,parameters){
    return T.get('search/tweets', parameters); 
}

然后在推特功能中

await retrieveTweets(T,parameters).then(data => {
 // do stuff with result
}.catch(error => {
 // do stuff with the error
}.finally(() => {
 // finish up
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2018-08-23
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多