我正在尝试使用twitter API post方法发布使用get / search方法找到的推文。但是,当我将搜索结果存储到下面的变量“st”时,它不起作用并始终产生错误。
var st = "test" //This is where I want to store the tweet found by calling search.
var params = {
q: 'hillary_clinton',
count: 1,
type: 'recent',
geocode: " 38.913376,-95.3352939, 3mi"
exclude_replies: true,
retweeted: false,
};
T.get('search/tweets', params, gotData);
function gotData(err, data, response) {
var tweets = data.statuses;
st = tweets[0].text // store the first search result in 'st'
}
var tweet = {
status: st
}
T.post('statuses/update', tweet, tweeted);
function tweeted(err, data, response) {
if (err) {
console.log("It did not work")
console.log(data)
} else {
console.log("it worked")
}
}
但是,当我运行程序时,总是会出现错误(因为它不会让我发推文重复的推文) - 这意味着“st”没有像我想要的那样正确地重新分配。我哪里错了?
答案 0 :(得分:0)
当您搜索推文时,您要求返回前5个结果,因此您始终会获得这5个结果并继续将st
设置为该推文数组中的第一条推文。
你可以做几件事。
将整个数组存储为st
,然后遍历它以获取其他推文。
在下一次搜索中使用一些api参数,例如'since_id'
返回ID大于(即更新)指定ID的结果。可以通过API访问的推文数量有限制。如果自since_id以来发生了推文限制,则since_id将被强制使用最旧的ID。
查看API的一些其他参数,
*当然,你可以等待希拉里发布新的推文,不应该等待太长时间......