【问题标题】:No PIN during ROAuth process in R StudioR Studio 中的 ROAuth 过程中没有 PIN
【发布时间】:2019-09-10 15:15:36
【问题描述】:

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

我正在使用包“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 包,如果有其他包/方式可以让我下载与关键字相关的推文,我将不胜感激。

非常感谢您的帮助:)。

【问题讨论】:

    标签: r twitter oauth rstudio roauth


    【解决方案1】:

    解决方案:

    这一次我不需要包“ROAuth”,而是需要“httr”和“openssl”,我可以使用“setup_twitter_oauth”函数和我的登录数据,它没有任何问题!

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

    根据这个youtube video,推特账号需要“读、写、私信”权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-02
      • 2013-08-12
      • 2012-11-24
      • 2013-04-09
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多