2015-07-12 3 views
2

Я хотел бы получить список твитов из Twitter для данного хэштега, используя пакет RJSONIO в R. Я думаю, что я довольно близок к решению, но, похоже, я пропустил один шаг.R - Twitter - fromJSON - получить список твитов

Мой код выглядит следующим образом (в данном примере я использую #NBA как хэштегом):

library(httr) 
library(RJSONIO) 

# 1. Find OAuth settings for twitter: 
# https://dev.twitter.com/docs/auth/oauth 
oauth_endpoints("twitter") 

# Replace key and secret below 
myapp <- oauth_app("twitter", 
        key = "XXXXXXXXXXXXXXX", 
        secret = "YYYYYYYYYYYYYYYYY" 
) 

# 3. Get OAuth credentials 
twitter_token <- oauth1.0_token(oauth_endpoints("twitter"), myapp) 

# 4. Use API 
req=GET("https://api.twitter.com/1.1/search/tweets.json?q=%23NBA&src=typd", 
     config(token = twitter_token)) 
req <- content(req, as = "text") 
response=fromJSON(req) 

Как я могу получить список твитов от объекта «ответ»?

В конце концов, я хотел бы получить что-то вроде:

searchTwitter("#NBA", n=5000, lang="en") 

Большое спасибо заранее!

ответ

2

Объект ответа должен быть списком длины два: статусы и метаданные. Так, например, чтобы получить текст первого твита, попробуйте:

response$statuses[[1]]$text 

Однако, есть несколько пакетов R разработан, чтобы сделать только такого рода вещи проще: Try streamR для потокового API, и twitteR для API REST. У последнего есть функция searchTwitter точно так же, как вы описываете.

+1

Большое спасибо за подсказку! Следующее прекрасно работает: 'response $ statuses $ text [[1]]'. Поскольку мне нужно выполнить итерацию по результатам временной шкалы с помощью max_id, чтобы создать более широкий список твитов, я думаю, мне нужно использовать функцию 'fromJSON'. Или это также возможно с пакетом twitterR? – kanimbla