OmniAuth для извлечения полных данных профиля из LinkedIn

Мне нравится простота OmniAuth, но мне трудно соединить точки при выполнении дополнительных вызовов API после получения токена обратно.

Я буду использовать LinkedIn в качестве примера, но проблема не в LinkedIn, а в моем непонимании того, как совершать последующие звонки после аутентификации.

Я могу сделать запрос в LinkedIn и пройти аутентификацию. Затем я получаю хеш обратно, и он полностью заполнен.

Теперь я хотел бы перезвонить в LinkedIn и получить полные данные своего профиля или, возможно, список контактов. Как мне это сделать? Нужен ли мне гем oauth в конце концов?

Я бы предпочел избегать драгоценных камней, специфичных для приложения, потому что мне придется делать одни и те же запросы в твиттере и фейсбуке.


person John Agan    schedule 11.11.2010    source источник


Ответы (3)


Omniauth предназначен только для аутентификации.

person Marcel Falliere    schedule 11.11.2010
comment
Пожалуйста, смотрите мой комментарий к ответу Аркана. - person Phil Sturgeon; 16.11.2010

Марсель Фальер прав. Omniauth только для аутентификации.

Вы можете взглянуть на этот плагин, он может решить вашу проблему.

https://github.com/pengwynn/linkedin

person Arkan    schedule 12.11.2010
comment
Верно, но как мы можем использовать OmniAuth для получения сведений о конфигурации, пользовательских токенов и всего остального, что необходимо для выполнения запроса? Некоторые предложения показывают session[:omniauth][:token] или что-то подобное, но что, если кто-то вошел в учетную запись пользователя, к которой также прикреплены twitter, facebook и т. д.? - person Phil Sturgeon; 16.11.2010
comment
Ты прав. Для каждой требуемой услуги необходимо будет получить действительные токены. У меня нет ответа. Кто-нибудь знает? - person Arkan; 16.11.2010
comment
возможно, вам поможет информация, представленная в этом потоке: "> stackoverflow.com/questions/4187178/ - person Marcel Falliere; 26.11.2010
comment
У меня такая же проблема, и я не получаю никакой тяги. Кажется, все говорят, что это только для аутентификации, и вы не можете делать запросы к службам. Мне это кажется неполным. OmniAuth::Strategy имеет метод запроса (intridea.github.com/omniauth/OmniAuth/…), который кажется тем, что вы бы использовали, но я не знаю, как получить экземпляр используемой стратегии. - person Kevin Davis; 24.04.2011
comment
Ну, это называется OmniAuth не просто так. И вы можете вытащить экземпляр, выполнив request.env["omniauth.strategy"]. - person jackyalcine; 03.10.2012

Кажется, я только что нашел ответ на него.

после завершения процесса oauth с поставщиком услуг (fb, twitter) omniauth сохраняет пользователя. здесь он передает хэш пользовательскому объекту, а содержимое хеша находится здесь https://github.com/intridea/omniauth/wiki/Auth-Hash-Schema эту часть учетных данных можно использовать для запроса дальнейшего запроса (на самом деле вам придется сохранить их в своем пользовательском объекте).

person goutham    schedule 08.06.2011