【问题标题】:twitter oauth using R使用 R 的推特 oauth
【发布时间】:2016-05-24 12:45:51
【问题描述】:

我做了所有的步骤

> library(ROAuth)
> reqURL <- "https://api.twitter.com/oauth/request_token"
> accessURL <- "http://api.twitter.com/oauth/access_token"
> authURL <- "http://api.twitter.com/oauth/authorize"
> consumerKey <- "xxxxxxxxxxxxxxx"
> consumerSecret <- "xxxxxxxxxxxxxxx"
> twitCred <- OAuthFactory$new(consumerKey=consumerKey,
+ consumerSecret=consumerSecret,
+ requestURL=reqURL,
+ accessURL=accessURL,
+ authURL=authURL)
> twitCred$handshake()

之后它告诉我这样做:

To enable the connection, please direct your web browser to: 
http://api.twitter.com/oauth/authorize?oauth_token=gYBR6Z2pg2YExfMjAsNp8QmjkSwpwfa5nPQNtUdgMWw
When complete, record the PIN given to you and provide it here: registerTwitterOAuth(twitCred)
Error: Forbidden

我粘贴了我的密码

> xyxabcd

它给出了: [1] xyxabcd

我输入了我的查询

> delta.tweets = searchTwitter('@abcdx', n=1500)

但它又给出了这个错误。

Error in twInterfaceObj$doAPICall(cmd, params, "GET", ...) : 
  OAuth authentication is required with Twitter's API v1.1

【问题讨论】:

  • 看看twitteRhttr 包,也许这些更容易使用

标签: r twitter-oauth


【解决方案1】:

首先,如果您使用的是 RStudio 或其他 R GUI,请尝试从 R 控制台重新运行 ROAuth 设置序列。如果您最初确实以这种方式进行设置,或者在从控制台尝试后仍然遇到问题,那么遵循@Karsten W 的建议是可行的方法。

您确实应该使用github 上提供的twitteRdevtools 版本,并且以下内容(这只是Geoff 页面中设置代码示例的镜像)应该可以帮助您:

install.packages(c("devtools", "rjson", "bit64"))

# RESTART R SESSION

library(devtools)
install_github("httr")
install_github("twitteR", username="geoffjentry")
library(twitteR)
setup_twitter_oauth("API key", "API secret")

【讨论】:

  • 错误:找不到函数“setup_twitter_auth”:(
  • setup_twitter_oauth,不是setup_twitter_auth,如果你安装了github版本的twitteR,它就在那里。
  • 啊,我是个白痴,对不起。
【解决方案2】:

[不要使用http,而是使用https]

您可以按照以下步骤操作:

reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
consumerKey <- "Mjn6tdsadsadkasdklad2SV1l"
consumerSecret <- "58Z7Eldsdfaslkf;asldsaoeorjkfksaVCQtvri"
twitCred <- OAuthFactory$new(consumerKey=consumerKey,
                             consumerSecret=consumerSecret,
                             requestURL=reqURL,
                             accessURL=accessURL,
                             authURL=authURL)
twitCred$handshake()

运行此代码后,您将在 R 控制台中看到如下消息:

To enable the connection, please direct your web browser to: 
https://api.twitter.com/oauth/authorize?oauth_token=scmVODruosvz6Tdsdadadasdsa
When complete, record the PIN given to you and provide it here:

只需将链接粘贴到您的浏览器然后授权应用程序,最后一个您将获得 PIN 码,只需将 PIN 码复制并粘贴到您的 R 控制台。

registerTwitterOAuth(twitCred)

如果成功,R 控制台将显示 TRUE。

user <- getUser("xxx")
userTimeline(user, n=20, maxID=NULL, sinceID=NULL, includeRts=FALSE)

如果仍有问题,请尝试显示您的软件包版本并更新到最新版本

sessionInfo()
update.packages("twitteR")

twitteR 的最新版本是 1.1.7 => http://cran.r-project.org/web/packages/twitteR/index.html

您可以下载 twitteR 手册 => 见第 12 页 http://cran.r-project.org/web/packages/twitteR/twitteR.pdf

【讨论】:

    【解决方案3】:
    #Install packages 
    install.packages("twitteR")
    install.packages("RCurl")
    install.packages(c("devtools", "rjson", "bit64", "httr"))
    install_github("geoffjentry/twitteR")
    
    #Load packages
    require(twitteR)
    require(RCurl)
    library(devtools)
    
    #Set variables
    consumer_key <- 'you_key'
    consumer_secret <- 'your_secret'
    access_token <- 'your_token'
    access_secret <- 'your_access'
    
    #setup_twitter_oath with parameters
    setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
    
    #searchTwitter function
    ArduinoDaySA <- searchTwitter("ArduinoDaySA", n=3, lang="en")
    
    ArduinoDaySA
    

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题。尝试了我在网上找到的所有建议,但徒劳无功。我试过这个脚本,它对我很有效:

          options(httr_oauth_cache=T)
      
          api_key <- "XXXXX"
      
          api_secret <- "XXXXX"        
      
          access_token <- "XXXXX"         
      
          access_token_secret <- "XXXXX"
      
          setup_twitter_oauth(api_key,api_secret,access_token,access_token_secret)            
      

      这对我有用,希望对你有用。

      【讨论】:

      • 遇到了同样的问题。尝试了我在网上找到的所有建议,但徒劳无功。我尝试了这个脚本,它对我很有效: options(httr_oauth_cache=T) api_key
      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2014-01-30
      • 1970-01-01
      • 2011-07-01
      • 2012-06-01
      • 2011-05-21
      • 2011-05-21
      相关资源
      最近更新 更多