gpt4 book ai didi

javascript - 使用nodejs从twitter API检索超过100条推文

转载 作者:行者123 更新时间:2023-12-02 22:32:03 28 4
gpt4 key购买 nike

我正在尝试在 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 数组中时,我得到一个空数组,并且结果最终没有保存。

最佳答案

您没有正确处理 promise 。get 请求可以返回一个 promise ,因此不要使用异步,而是将函数更改为

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

然后在 Twitter 功能中

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

关于javascript - 使用nodejs从twitter API检索超过100条推文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58859933/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com