OAuth授权 - 建立requestToken

时间:2011-04-07 07:07:17

标签: php api oauth linkedin

我需要获取请求令牌才能使用LinkedIn API。

我正在尝试将此请求(通过POST)发送到:

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 Header发送的,而不是通过POST参数发送的?

1 个答案:

答案 0 :(得分:1)

参数应该在“Authorization”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消费者秘密
  • 回调网址需要编码

此处提供了更多信息:http://developer.linkedin.com/docs/DOC-1245