5

我正在尝试将 twitteR 的searchTwitter()函数与 curl 代理一起使用,但出现与 JSON 相关的错误。我看到很多人都遇到了同样的 JSON 错误。但我相信我的原因是不同的,所以我会尽量具体地提出我的问题。

我已经正确设置了与 Twitter API 的 OAuth 连接。我在 Windows 上,并使用最新版本的 R 和所有软件包。由于我公司的防火墙,我正在使用代理。我RCurlOptions用来配置代理。我还引入了 RJSONIO。当我不必配置代理时,代码在我公司的防火墙之外运行良好。

library(RCurl)
library(twitteR)
library(RJSONIO)

options(RCurlOptions = list(
    proxy ="proxy.mycompany.net:8080",
    proxyuserpwd="USERNAME:PASSWORD",
    cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))

load("OAuth.RData") #Load in my OAuth credentials object
registerTwitterOAuth(cred)

geico.tweets <- searchTwitter('@geico', n = 2)

这是我得到的错误:

Error in twFromJSON(out) : 
  Error: Malformed response from server, was not JSON.

我知道这不是 Twitter 返回一个无法被 R 正确解析的字符的问题,因为我什至无法引入任何一条推文(另外,它在防火墙外也能正常工作)。

此链接表明它可能是由我使用 RCurl 引起的:https ://github.com/omegahat/RCurl/issues/1

他的解释是,由于我使用了 RCurl,JSON 被搞砸了。\\转换为\by R_mapString,仅当数据包含 Unicode 字符时才调用。这大概是我所了解的。他还提到了一个.mapUnicode论点。

我可以配置一些参数RCurlOptions来解决这个问题吗?谢谢。

4

0 回答 0