【问题标题】:streamR, filterStream ends instantlystreamR, filterStream 立即结束
【发布时间】:2014-10-02 11:15:20
【问题描述】:

我是 R 新手,如果这是一个非常简单的问题,请提前道歉。我想使用streamR包,但是当我执行filterStream函数时收到以下输出:

正在捕获推文... 与 Twitter 流的连接在 0 秒后关闭,最多下载了 1 条推文。

我想知道我是否在身份验证过程中遗漏了一个步骤。我能够成功使用 twitteR 包并通过 searchTwitter 功能获取推文。为了获得对流式 API 的访问权限,我还需要其他什么吗?

library("ROAuth")
library("twitteR")
library("streamR")
library("RCurl")
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))

cred <- OAuthFactory$new(consumerKey="xxxxxyyyyyzzzzzz",
                     consumerSecret="xxxxxxyyyyyzzzzzzz111111222222"',
                     requestURL='https://api.twitter.com/oauth/request_token',
                     accessURL='https://api.twitter.com/oauth/access_token',
                     authURL='https://api.twitter.com/oauth/authorize')

cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl") )

save(cred, file="twitter authentication.Rdata")
registerTwitterOAuth(cred)

scoring<- searchTwitter("Landon Donovan", n=100, cainfo="cacert.pem")

filterStream( file.name="tweets_rstats.json",track="Landon Donovan", tweets=10, oauth=cred)

【问题讨论】:

    标签: r twitter twitter-oauth


    【解决方案1】:

    您的凭据看起来不错。我在 R 中工作时遇到了一些可能的答案:

    1. 如果您尝试一次在多台计算机上运行此程序(或其他人正在使用您的 API 密钥),则它不会起作用,因为每个 API 密钥只允许一个连接。尝试在两个不同的项目中运行它也是如此。

    2. 互联网连接可能不允许访问 API 来执行抓取。在某些日子或某些地点,我的代码即使在建立连接后也不会运行。我不确定这是否与对连接的某些控制或交易是什么有关,但总有一天它会在客户网站上运行,而在其他网站上则不会。

    3.好像你运行一个拉然后立即运行另一个,然后出现 0 tweets/1 second 消息。我认为您没有滥用速率限制,但可能需要等待一段时间才能再次流式传输。

    4 .最后的建议是确保您的应用程序首选项中允许“读取、写入和访问直接消息”。这可能没有什么不同,但您并没有限制任何连接。

    除此之外,我没有遇到任何“快速修复”,对我来说,它通常只是在等待,所以当我运行拉取时,我确保捕获大量推文或捕获一些推文一次几个小时。

    【讨论】:

    • 感谢山姆的回复。看起来它可能是您列表中的第二个。我没有共享我的 API 密钥,也没有接近速率限制,并且选择了“读取、写入和访问直接消息”。当我有空闲时间时,我正在努力,希望能找到一个解决方案来分享。
    • 我也遇到了同样的问题,有更新吗? @JuanBecks
    猜你喜欢
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2010-09-05
    相关资源
    最近更新 更多