【问题标题】:How to store twitter search API tweets and retweet them如何存储 twitter 搜索 API 推文并转发它们
【发布时间】:2016-04-07 12:07:37
【问题描述】:

我正在尝试使用 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”没有像我想要的那样被正确地重新分配。我哪里错了?

【问题讨论】:

    标签: javascript twitter


    【解决方案1】:

    当您搜索推文时,您要求返回前 5 个结果,因此您始终会得到这 5 个结果并继续将 st 设置为该推文数组中的第一条推文。

    你可以做几件事。

    将整个数组存储为st,然后循环遍历它以获取其他推文。

    在下次搜索时使用一些 api 参数,例如“since_id”

    返回 ID 大于(即更新)指定 ID 的结果。可以通过 API 访问的推文数量是有限制的。如果自 since_id 以来已达到 Tweets 的限制,则 since_id 将被强制为可用的最旧 ID。

    查看 API 的其他一些参数,

    Twitter Search Docs

    *当然,你可以等希拉里发新的推文,不用等太久……

    【讨论】:

    • 我什至尝试将其更改为仅返回 1 条推文,但它仍然不接受重新分配 st。我实际上不需要超过一条推文。我只想将从搜索方法中找到的一条推文存储在“st”中,然后使用 post 方法自己推文。
    • 您可以记录 tweets 数组并查看其他推文吗?如果将 st 设置为 tweets[1] 会发生什么?有什么不同吗?
    • 我刚刚检查了一下,它现在已成功分配 st = tweet[0].text,但是当调用“post”函数并将 st 作为参数传入时,我仍然收到错误消息。它说状态是重复的,我认为这意味着它仍然认为我在发推文“测试”。
    • 文字每次都一样吗?如果是这样的话,那就是我的意思,你一遍又一遍地抓取相同的推文,尝试一次将其设置为 tweet[1].text 看看它是否会给你同样的错误......
    猜你喜欢
    • 1970-01-01
    • 2013-06-17
    • 2015-12-10
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    • 2012-09-26
    • 2011-06-21
    • 2013-08-19
    相关资源
    最近更新 更多