我想通过R Studio [版本3.5.1(2018-07-02)]访问twitter,以下载与某个关键字匹配的tweets。
我正在使用软件包“ twitteR”和“ ROAuth”。 我的Twitter帐户已将“读,写和直接消息”设置为访问权限。
我的问题与here完全相同
唯一的区别是,提供的解决方案对我不起作用。
通过使用我的密钥执行代码(请参阅链接文章),我可以在打开的网站上单击“身份验证”按钮,立即重定向到回调URL,并且看不到PIN。
Twitter需要回调URL,因此无法从Twitter帐户设置中将其删除。
我很累:
> setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
[1] "Using direct authentication"
Error in check_twitter_oauth() : OAuth authentication error:
This most likely means that you have incorrectly called setup_twitter_oauth()'
我的主要方法基于上面的链接主题。我使用以下代码:
requestURL <- "https://api.twitter.com/oauth/request_token"
accessURL = "https://api.twitter.com/oauth/access_token"
authURL = "https://api.twitter.com/oauth/authorize"
consumerKey = 'YYY'
consumerSecret = 'XXX'
twitCred <- OAuthFactory$new(consumerKey='YYY',
consumerSecret='XXX',
requestURL=requestURL,
accessURL=accessURL,
authURL=authURL)
download.file(url="http://curl.haxx.se/ca/cacert.pem",
destfile="cacert.pem")
twitCred$handshake(cainfo= system.file("CurlSSL", "cacert.pem", package = "RCurl"))
第二种方法是使用以下函数,该函数产生与上述相同的错误。
TwitterOAuth<-function()
{
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL<- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
twitCred <- OAuthFactory$new(consumerKey='YYY',
consumerSecret='XXX',
requestURL=reqURL,
accessURL=accessURL,
authURL=authURL)
options(RCurlOptions = list(cainfo = system.file("CurlSSL",
"cacert.pem",
package = "RCurl")))
twitCred$handshake()
registerTwitterOAuth(twitCred)
}
TwitterOAuth()
第二种方法在R的控制台中生成一个Twitter API链接,当我立即单击它时,我被定向到一个Twitter页面,其中指出: “哇! 此页面的请求令牌无效。它可能已经被使用,或者由于它太旧而过期。请返回发送给您的网站或应用程序,然后重试;这可能只是一个错误。”
我希望在R和Twitter之间建立联系。 我不依赖于ROAuth软件包,如果还有另一个软件包/方式可以让我下载较长时间序列的与关键字相关的Tweets,我将不胜感激。
非常感谢您的帮助:)。
答案 0 :(得分:0)
解决方案:
这次,我不需要软件包“ ROAuth”,而是软件包“ httr”和“ openssl”,并且可以将函数“ setup_twitter_oauth”用于我的登录数据,并且可以正常使用!
顺便说一句:它没有显示PIN,但数据可以直接下载到R中!
根据此youtube video,twitter帐户需要“读取,写入和直接发送消息”权限。