Omniauth с Linkedin в Rails для публикации обновлений

У меня есть приложение, использующее OmniAuth для аутентификации в различных службах социальных сетей (включая Linkedin), и я хочу публиковать обновления. У меня есть следующая информация о пользователе из omniauth:

linkedin_verifier: ****
linkedin_token: *****
linkedin_secret: *****
linkedin_url: http://www.linkedin.com/pub/*****

Но не могу понять, как использовать его для публикации. Я просмотрел: https://github.com/pengwynn/linkedin, но для этого требуется токен запроса и секрет запроса (похоже, у меня есть только токен ответа и секрет ответа), которые я не получаю от omniauth. Любые идеи?


person Kevin Sylvestre    schedule 01.07.2011    source источник


Ответы (2)


Вы пробовали authorize_from_access, используя токен и секрет, которые вы получаете после omniauth?

client = LinkedIn::Client.new('your_consumer_key', 'your_consumer_secret') client.authorize_from_access(linkedin_token, linkedin_secret)

person Kevin Tsoi    schedule 10.07.2011
comment
Это правильный ответ. Если пользователь прошел аутентификацию ранее с помощью OmniAuth, информация об учетной записи должна быть в вашей базе данных. Для linkedin_token , linkedin_secret используйте: User.authentications.find_by_provider('linkedin').token / secret (при условии, что вы используете модель, аналогичную Omniauth Railscast). - person ghayes; 11.07.2011
comment
Это не работает для меня. При использовании этого кода он перенаправляет меня на: auth/failure?message=invalid_response — Без этого конкретного кода у меня все в порядке, что означает, что код в вашем ответе вызывает перенаправление, хотя я не уверен, как он узнает, что нужно перенаправить на этот конкретный URL-адрес, поскольку он из ОмниАус. – Есть идеи, что здесь может пойти не так? - person Marc; 25.07.2011

по ссылке (https://github.com/pengwynn/linkedin) я нашел это,

Сначала вам нужно получить ключи API, создать с ними клиент, а затем вы получите токен запроса и ответ.


#get your api keys at https://www.linkedin.com/secure/developer

client = LinkedIn::Client.new('your_consumer_key', 'your_consumer_secret')

rtoken = client.request_token.token

rsecret = client.request_token.secret

person Rahul    schedule 06.07.2011
comment
Даже если я уже использую OmniAuth для аутентификации? Я не хочу спрашивать пользователей дважды... - person Kevin Sylvestre; 10.07.2011