Рубиновый твиттер-клиент - PullRequest
       2

Рубиновый твиттер-клиент

1 голос
/ 27 февраля 2011

Я пытаюсь создать клиент Twitter на основе ruby, где я могу публиковать свой статус из командной строки, используя ruby. Я пытаюсь понять oauth прямо сейчас, и это немного смутило меня. Если я создаю веб-приложение, я могу предоставить URL-адрес обратного вызова, когда токен запроса будет завершен. Как бы я это сделал из командной строки? Я не хочу, чтобы ruby ​​распечатывал авторизованные файлы, копировал и вставлял URL и нажимал «Разрешить», чтобы получить токен. Я нашел кое-что о внешнем обмене или ПИН-коде. Как бы я это сделал с библиотекой OAuth в ruby, пожалуйста, большое спасибо.

Ответы [ 3 ]

4 голосов
/ 27 февраля 2011

Чтобы использовать механизм обратного вызова, ваше приложение должно быть web application.Кажется, вы разрабатываете desktop application, и в этом случае вы должны следовать потоку " PIN-код ", указав oauth_callback_url "oob" (внеполосный) при запросе токена.Например,

https://api.twitter.com/oauth/request_token?oauth_callback=oob

Если правильно установить заголовок этого HTTP-запроса (настройка заголовка HTTP является ключевой частью OAuth, и я думаю, что вы уже знаетекак это сделать), Twitter выдаст oauth_token, oauth_token_secret и oauth_verifier.Давайте назовем этот токен "request_token".Вам необходимо получить "access_token" позже.

После того, как вы наберете request_token, вам нужно открыть веб-страницу с указанным ниже URL

http://api.twitter.com/oauth/authorize?oauth_token=request_token

Это откроет страницу авторизации и позволит пользователю решить, хочет ли пользователь разрешить вашему приложению доступ к своей учетной записи Twitter.Если пользователь говорит, что все в порядке, тогда Twitter дает PIN-код .Вам нужно разрешить пользователю вводить PIN-код, чтобы вы могли его сохранить.

Теперь пришло время получить еще один токен ("access_token"), используя comsumer_key / secret, request_token и PIN code.Вы должны правильно установить заголовок со всеми этими значениями и снова выполнить HTTP-запрос с этим URL,

https://api.twitter.com/oauth/access_token

Если Twitter принимает ваш запрос "access_token", он будетдаст вам oauth_token, oauth_token_secret, user_id и screen_name.Давайте назовем этот токен "access_token".Теперь вы можете выполнить любой требуемый OAuth Twitter API, используя access_token и its secret (oauth_token_secret).Вы можете сохранить два значения в файле и использовать их всякий раз, когда вам нужно получить доступ к учетной записи Twitter пользователя.Значения будут всегда действительными до тех пор, пока пользователь не отменит доступ к вашему приложению.

Я не знаю Ruby, но если вы знаете, как выполнять запросы HTTP / HTTPS (GET / POST) с пользовательскими заголовками в Ruby,этот поток ПИН-кода должен работать нормально, если вы внимательно следите за документацией Twitter API.Удачи!

1 голос
/ 01 октября 2011

Он будет запрашивать PIN-код, пока вы не укажете oauth_callback при получении токена запроса, не при пересылке пользователя на URL авторизации

@ consumer = OAuth :: Consumer.new ( TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, {: Сайт => "https://api.twitter.com"})

@ request_token = @ consumer.get_request_token (: oauth_callback => CALLBACK_URL )

Это было результатом просмотра нескольких часов неполной документации.

0 голосов
/ 17 июня 2013

используйте щебетать в Твиттере, это облегчит вам задачу. http://rdoc.info/gems/tweeter/2.0.0/frames

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...