24 февраля 2015

И снова об авторизации при работе с Twitter API



В одном из предыдущих сообщений я описал простой пример использования возможностей пакетов twitteR и tm для анализа Twitter-сообщений. Сервис Twitter постоянно изменяется, что приводит к соответствующим изменениям и в той большой "экосистеме" программного обеспечения, которая выросла вокруг этого сервиса. Так, в 2013 г. в Twitter API были внесены существенные изменения касательно процедуры авторизации приложений, что усложнило работу с пакетом twitteR. Однако в последнее время процесс авторизации стал проще - об этом и будет данное сообщение.



Предполагается, что у вас уже есть Twitter-акаунт и вы зарегистрировали свое приложение согласно шагам, описанным ранее. Важным моментом является однозначное указание адреса http://127.0.0.1:1410 в поле Callback URL на закладке Settings при настройке свойств приложения - см. рисунок:



Далее необходимо будет установить самую последнюю версию пакета twitteR, а также пакет httpuv:

install.packages("twitteR")
install.packages("httpuv")

После подключения пакета twitteR авторизация приложения легко выполняется при помощи функции setup_twitter_oauth(), на которую подаются значения ваших consumer_key и consumer_secret:

library(twitteR)
setup_twitter_oauth(consumer_key='ваш_ключ_здесь',
                    consumer_secret='ваш_секрет_здесь')

Выполнение указанных команд привет к открытию окна браузера и страницы, где вам нужно будет подтвердить авторизацию (кнопка Authorize app):


После нажатия на кнопку Authorize app в консоли R появится сообщение об успешной авторизации:

[1] "Using browser based authentication"
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Authentication complete.

Вот, собственно, и все - можно приступать к сбору Twitter-сообщений.

6 комментариев :

Unknown комментирует...

Почему может не перенаправять на страницу? После команд
library(twitteR)
setup_twitter_oauth(consumer_key='ваш_ключ_здесь',
consumer_secret='ваш_секрет_здесь')

Sergey Mastitsky комментирует...

Видимо, снова что-то изменилось в процедуре авторизации. Это, к сожалению, часто происходит с этим пакетом. Быстрого ответа у меня нет. Нужно читать обновленную документацию по пакету.

lexaxxxlll комментирует...

Просто вот это показывает
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
Но ничего не происходит. Буду очень солидарен, если найдёте решение этой проблемы и как-то оповестите что ли. Можно на почту kcah23@mail.ru

Анонимный комментирует...

To kcah23
Была же трабла.
R не может найти браузер.
При добавке функции options:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
library(twitteR)
options(browser="opera")
setup_twitter_oauth(consumer_key='.........
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
вытягивает окно браузера нормально.


Автору большая благодарность за опубликованный опыт.

Анонимный комментирует...

описание:
https://stat.ethz.ch/R-manual/R-devel/library/utils/html/browseURL.html

Unknown комментирует...

А у меня выдает вот такую ошибку:
Error in curl::curl_fetch_memory(url, handle = handle) :
Timeout was reached

Кто-то с таким сталкивался?

Отправить комментарий