R Studio在ROAuth过程中没有PIN

时间:2019-04-20 20:03:16

标签: r twitter oauth rstudio roauth

我想通过R Studio [版本3.5.1(2018-07-02)]访问twitter,以下载与某个关键字匹配的tweets。

我正在使用软件包“ twitteR”和“ ROAuth”。 我的Twitter帐户已将“读,写和直接消息”设置为访问权限。

我的问题与here完全相同

唯一的区别是,提供的解决方案对我不起作用。

通过使用我的密钥执行代码(请参阅链接文章),我可以在打开的网站上单击“身份验证”按钮,立即重定向到回调URL,并且看不到PIN。

Twitter需要回调URL,因此无法从Twitter帐户设置中将其删除。

我很累:

  • 重新安装软件包
  • 更改工作目录
  • 将软件包“ openssl”和“ httpuv”安装为suggested
  • 将我的帐户的Twitter访问权限从“读写”更改为 “读取,写入和定向消息”
  • 使用了产生错误消息的setup_twitter_oauth函数:
> 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,我将不胜感激。

非常感谢您的帮助:)。

1 个答案:

答案 0 :(得分:0)

解决方案:

这次,我不需要软件包“ ROAuth”,而是软件包“ httr”和“ openssl”,并且可以将函数“ setup_twitter_oauth”用于我的登录数据,并且可以正常使用!

顺便说一句:它没有显示PIN,但数据可以直接下载到R中!

根据此youtube video,twitter帐户需要“读取,写入和直接发送消息”权限。