OAuth-авторизация - Установление запроса Token - PullRequest
2 голосов
/ 07 апреля 2011

Мне нужно получить токен запроса для работы с API-интерфейсом LinkedIn.

Я пытаюсь отправить этот запрос (по почте) на:

https://api.linkedin.com/uas/oauth/requestToken

с этими параметрами

'oauth_callback' => 'http://www.myserver.com/tokenReturned',
'oauth_consumer_key' => '---',
'oauth_consumer_secret' => '---',
'oauth_nonce' => uniqid(time(), TRUE),
'oauth_signature_method' => 'PLAINTEXT',
'oauth_signature' => '---',
'oauth_timestamp' => time(),
'oauth_version' => '1.0'

Так или иначе, сервер LinkedIn отвечает HTTP 100 и это сообщение:

oauth_problem=parameter_absent&oauth_parameters_absent=oauth_consumer_key&oauth_signature_method&oauth_signature&oauth_timestamp&oauth_nonce

Что я делаю не так? Какой параметр мне не хватает?

Или параметры следует отправлять через заголовок HTTP, а не через параметры POST?

1 Ответ

1 голос
/ 02 мая 2011

Параметры должны быть отправлены в HTTP-заголовке «Авторизация». Например:

POST https://api.linkedin.com/uas/oauth/requestToken HTTP/1.1
Authorization: OAuth oauth_callback="http%3a%2f%2flocalhost%3a2161%2flogin%2flinkedin", oauth_consumer_key="YOUR_KEY", oauth_nonce="SOME_NOUNCE", oauth_signature="YOUR_SIGNATURE", oauth_signature_method="HMAC-SHA1", oauth_timestamp="YOUR_TIMESTAMP", oauth_version="1.0"
Host: api.linkedin.com
Connection: Keep-Alive

Обратите внимание на несколько вещей:

  • Вы никогда не должны посылать свой потребительский секрет oauth
  • URL обратного вызова должен быть закодирован

Более подробная информация доступна здесь: http://developer.linkedin.com/docs/DOC-1245

...