Чтобы использовать механизм обратного вызова, ваше приложение должно быть 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.Удачи!