2013-08-28 46 views
6

Tôi đang chạy R Studio trên AWS "Ubuntu Server 12.04.2 LTS" và truy cập R Studio qua trình duyệt của tôi.ROAuth không còn được sử dụng có lợi cho httr? [Twitter API]

Khi tôi cố gắng để xác thực tại API Twitter bằng cách sử dụng gói ROAuth với mã:

credential<-OAuthFactory$new(consumerKey="xxxxx", 
          consumerSecret="xxxxx", 
          requestURL="https://api.twitter.com/oauth/request_token", 
          accessURL="https://api.twitter.com/oauth/access_token", 
          authURL="https://api.twitter.com/oauth/authorize") 

credential$handshake() 
registerTwitterOAuth(credential) 

tôi nhận được một lỗi sau khi registerTwitterOAuth(credential) nói

Error in registerTwitterOAuth(credential) : 
    ROAuth is no longer used in favor of httr, please see ?setup_twitter_oauth 

Tuy nhiên tôi không thể tìm thấy bất kỳ hơn nữa giải thích ..

Trả lời

5

Dường như gói twitteR đã được thay đổi ngay trước khi tôi đăng, vì vậy cách mới để xác thực là

setup_twitter_oauth(CUSTOMER_KEY, CUSTOMER_SECRET, ACCESS_TOKEN, ACCESS_secret, credentials_file=NULL) 

thấy https://github.com/geoffjentry/twitteR

0

Tôi đang có một số vấn đề bằng cách sử dụng chức năng setup_twitter_oauth. Tôi chạy đoạn mã sau và không nhận được một đối tượng sau khi hàm setup_twitter_oauth được chạy hoặc tệp tin ủy nhiệm được tải.

Sau đó, tôi chỉ tải tập tin cred_1.RData và tôi nhận được một sig objetc mà dường như không hữu ích.

Tôi đang ở trên cửa sổ và đã cài đặt phiên bản github của gói.

rm(list = ls(,all=T)) 


setwd("D:\\TWEETS\\cuenta_1") 
library(twitteR) 
library(httr) 

# Credenciales 

consumer_key = "xxxxxxxxxxxxxxxx" 
consumer_secret = "xxxxxxxxxxxxxxxx" 
access_token = "xxxxxxxxxxxxxxxxxxx" 
access_secret = "xxxxxxxxxxxxxxxx" 

credentials_file = "cred_1.RData" 

setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret, credentials_file) 
load_twitter_oauth("cred_1.RData") 

ls() 

> ls() 
[1] "access_secret" "access_token"  "consumer_key"  "consumer_secret" 
[5] "credentials_file" 


> load("cred_1.RData") 
> 
> ls() 
[1] "access_secret"  "access_token"  "consumer_key"  "consumer_secret" "credentials_file" "load_twitter_oauth" "set_oauth_sig"  
[8] "sig"    
> 
> print(sig) 
Config: 
List of 1 
$ signature:function (method, url) 
1

Tôi gặp một số sự cố với chức năng setup_twitter_oauth(). Tôi chạy đoạn mã sau và nó làm việc cho tôi mà không có bất kỳ lỗi nào.

library(RCurl) 
require(twitteR) 
library(ROAuth) 
reqURL <- "https://api.twitter.com/oauth/request_token" 
accessURL <- "https://api.twitter.com/oauth/access_token" 
authURL <- "https://api.twitter.com/oauth/authorize" 
api_Key <- "XXXXXXX" 
api_Secret <- "XXXXXXXXXXXXXXXXX" 

twitCred <- OAuthFactory$new(consumerKey=api_key, 
          consumerSecret=api_secret, 
          requestURL=reqURL, 
          accessURL=accessURL, 
          authURL=authURL 
) 
twitCred$handshake() 

EDIT:

Chỉ cần bây giờ sắp xếp những vấn đề tôi đã có với access_token ứng dụng của tôi, bây giờ setup_twitter_oauth chức năng đang làm việc một cách hoàn hảo.

Hãy thử đoạn code dưới đây cho Twitter xác thực với R, nếu bạn api_key, api_secret, acsess_token, access_token_secret được tạo ra mà không có lỗi.

api_key = "XXXXXXXXX" // your api_key 
api_secret = "XXXXXXXXXX" // your api_secret 
access_token = "XXXXXXXXXX" // your access_token 
access_token_secret = "XXXXXXXXXX" // your access_token_sceret 
setup_twitter_oauth(api_key,api_secret,access_token, 
        access_token_secret) 
1

Sau đây làm việc cho tôi:

packages <- c("twitteR","ROAuth")#"openssl","base64enc" 
### checking if packages are already installed and installing if not 
check.install.load.Package<-function(package_name){ 
    if(!package_name%in%installed.packages()){ 
    install.packages(package_name) 
    } 
    library(package_name,character.only = TRUE) 
} 
for(package in packages){ 
    check.install.load.Package(package) 
} 


api_key = "XX" # your api_key 
api_secret = "XX" # your api_secret 
access_token = "XX" # your access_token 
access_token_secret = "XX" # your access_token_sceret 
credential<-OAuthFactory$new(consumerKey=api_key, 
          consumerSecret=api_secret, 
          requestURL="https://api.twitter.com/oauth/request_token", 
          accessURL="https://api.twitter.com/oauth/access_token", 
          authURL="https://api.twitter.com/oauth/authorize") 

credential$handshake() 

setup_twitter_oauth(api_key,api_secret,access_token, 
        access_token_secret) 



search.string <- "#RohingyaTerrorReality" 
no.of.tweets <- 60 

RohingyaTerrorReality.Tweets <- searchTwitter(search.string, n=no.of.tweets,lang="en",) 



df <- do.call("rbind", lapply(RohingyaTerrorReality.Tweets, as.data.frame)) 
View(df) 
Các vấn đề liên quan