Как превратить oauth_token & oauth_verifier в токен доступа с помощью драгоценного камня OAuth - PullRequest
5 голосов
/ 15 февраля 2011

Я пытаюсь использовать гем OAuth для аутентификации Evernote в моем приложении Ruby on Rails. Я использую учебник для аутентификации Twitter - http://blog.brijeshshah.com/integrate-twitter-oauth-in-your-rails-application/, потому что я не смог найти Evernote.

Пока что я получил от пользователя разрешение на мое приложение и теперь у меня есть временные учетные данные:

customer = OAuth::Consumer.new("xxx", "xxx",{
  :site=>"https://sandbox.evernote.com/",
  :request_token_path => "/oauth",
  :access_token_path => "/oauth",
  :authorize_path => "/OAuth.action"})
@request_token = customer.get_request_token(:oauth_callback => "http://localhost:3000/create_evernote_step_2")

session[:request_token] = @request_token.token
session[:request_token_secret] = @request_token.secret       

redirect_to @request_token.authorize_url

Так что теперь у меня есть oauth_token и oauth_verifier, и мне нужно превратить их в токен доступа. Эта часть учебника по Твиттеру кажется специфической для Твиттера, поэтому я теперь уверен, как это сделать в случае Evernote. Кто-нибудь может мне помочь?

Ответы [ 4 ]

5 голосов
/ 08 марта 2011

Пример кода Evernote теперь содержит пример Ruby OAuth, в котором используется гем OAuth. Вы можете загрузить пример кода с http://www.evernote.com/about/developer/api/.. В этом случае следующим шагом будет обмен временными учетными данными для учетных данных токена:

access_token = @request_token.get_access_token(:oauth_verifier => oauth_verifier)

oauth_verifier передается вашему приложению как часть URL обратного вызова.

0 голосов
/ 14 мая 2016

При получении токена доступа с помощью ответа Сета вам понадобится токен запроса, который вы создали при создании URL-адреса авторизации.Это нужно хранить в объекте сеанса.Если вы сохраняете напрямую, он выдаст ошибку при получении сохраненного токена запроса.Поэтому вам нужно сохранить это в cache_store.

Чтобы иметь дело с токеном запроса и токеном доступа для evernote api в приложении rails, вы можете выполнить следующие шаги:

вам нужнонастроить сеанс cache_store для сохранения ваших токенов OAuth из Evernote.Добавьте в конец config / initializers / session_store.rb следующее:

Rails.application.config.session_store :cache_store, key: ‘_rails-evernote_session’

Таким образом, вы можете сохранять объекты в сеансе и извлекать их при необходимости.

ДляБолее подробную информацию вы можете проверить в следующем уроке.- https://codepen.io/asommer70/post/export-evernote-notes-with-rails

0 голосов
/ 13 декабря 2012

В дополнение к полезному примеру из Evernote вы также можете автоматизировать цикл «перенаправить пользователя, разрешить ему доступ, получить перенаправленный обратно» в модульном тесте.Я нашел это немного сложным, поэтому разместил весь код здесь:

Evernote OAuth в модульном тесте

0 голосов
/ 15 февраля 2011

Эй, чувак, я тоже пошел по этому пути, где я интегрировал Oauth в одно из моих других приложений.

Вы должны проверить oauth-плагин на github , так как он обрабатывает все эти дела для вас.

Это должно помочь вам в большинстве случаев, плюс, если есть «странный» провайдер oauth, который не «популярен», он позволяет вам добавить его в файл конфигурации. Вот что я сделал с моим.

Одно из предложений - переписать все методы в OauthConsumersController и «настроить» их по мере необходимости. я знаю, что должен был сделать это, и хорошо, было легче увидеть, что он сделал со своим плагином, и настроить его оттуда. Черт, возможно, у него даже есть путь, по которому вы можете следовать в своем коде для решения вашей конкретной проблемы, и вам не понадобятся все его плагины (так как он также использует гем oauth).

...