Gem Linkedin - Почему API извлекает различные наборы данных на localhost и myDomain?
Я написал код на своем локальном компьютере для получения полных профилей данных, код приведен ниже. Я использовал драгоценный камень linkedin для следующего кода.
@@config = {
:site => 'https://api.linkedin.com',
:authorize_path => '/uas/oauth/authenticate',
:request_token_path => '/uas/oauth/requestToken?scope=r_basicprofile+r_fullprofile+r_emailaddress+r_network',
:access_token_path => '/uas/oauth/accessToken'
}
client = LinkedIn::Client.new("myTokenxxxxxxxx", "mySecretxxxxxxx", @@config)
user_work_exs_linked_in = client.profile(:fields => [:positions]).positions
Когда я зарегистрировал свой сайт для использования API в LinkedIn, я ввел как localhost, так и myDomain.com в качестве сайтов для авторизации. Несмотря на то, что информация о причинах, похоже, извлекается в обоих случаях, существует разница в объекте, извлекаемом на моем локальном хосте, в отличие от того, что извлекается на сеансе моего сервера. Например, объект "user_work_exs_linked_in" сверху имеет следующую структуру в localhost:
=> #<LinkedIn::Mash all=[#<LinkedIn::Mash company=#<LinkedIn::Mash id=xxx industry="Internet" name="xxx" size="xxx" type="xxx"> id=xxx is_current=xxx start_date=#<LinkedIn::Mash month=x year=xxxx> summary="xxx" title="xxx">
в то время как он имеет гораздо более сложную структуру на сервере, как показано ниже (полная структура не включена как слишком длинная)
=> #<LinkedIn::Profile:0x007f0b8f5xxxxx @roxml_references=[#<ROXML::XMLTextRef:0x007f0b8f507340 @opts=#<ROXML::Definition:0x007f0b8ea6dc18 @default=nil, @to_xml=nil, @name_explicit=false, @cdata=nil, @required=nil, @frozen=nil, @wrapper=nil, @namespace=nil, @accessor="id", @array=false, @blocks=[], @sought_type=:text, @attr_name="id", @name="id">, @instance=#<LinkedIn::Profile:0x007f0b8fxxxxx ...>,..........
Объект, возвращаемый на localhost, может быть преобразован в хеш, тогда как объект, найденный на сервере, выдает мне ошибку, если я вызываю to_hash. в чем может быть причина отличия сервера от localhost? Это проблема аутентификации?
1 ответ
Это оказалось проблемой авторизации API - то есть localhost был авторизован, а myDomain - нет. Я восстановил новый ключ API под новым именем приложения в LinkedIn... kaboom.. Теперь в мире стало больше смысла.