2011-04-26 112 views
5

我只是试图使用LinkedIn登录。根据LinkedIn,他们使用OAuth 1.0a,这意味着我应该在获取请求令牌时发送oauth_callback参数。以下是我在下面生成的链接。链接忽略我的oauth_callback

https://api.linkedin.com/uas/oauth/requestToken?oauth_callback=http%3a%2f%2flocalhost%3a2161%2flogin%2flinkedin

我得到一个有效的响应回来的组oauth_token,oauth_token_secret,oauth_callback_confirmed =真等

但是我登录到LinkedIn后,我得到的OOP代码来进入我的应用程序,而不是它只是使用我发送的oauth_callback重定向。

我现在正在测试的网址是我的本地主机,但它在活动服务器上完全一样。

对此有任何想法。我搜索了LinkedIn和其他stackoverflow答案,尝试了很多东西,没有一个工作。

使用C#,ASP.NET MVC 3,.NET 4.0

+0

这可能是他们有一个bug;你可以写他们关于这个问题。在他们的文档中写道,他们处理oauth_callback参数,所以它不应该是OOP。 – middlehut 2011-04-26 07:23:04

回答

3

的oauth_callback应该在用于请求令牌而不是查询字符串请求的报头中发送。例如:

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 

更多信息,请访问:http://developer.linkedin.com/docs/DOC-1245

你会看到oauth_callback是可选的,因为LinkedIn没有看到在“授权”头的oauth_callback,它是将用户重定向添加到您在应用程序设置中指定的“OAuth重定向网址”。不过,我猜你已将这个“OAuth重定向网址”设置为空,这就是为什么你被重定向到OOP页面的原因。

我希望有帮助。

+0

我还没有机会回来尝试一下,希望本周 – Darye 2011-05-11 03:42:00

+1

你给的链接似乎意味着'POST数据/ body'而不是'POST header'? http://oauth.net/core/1.0a/#consumer_req_param – 2012-02-24 03:50:15

+0

根据LinkedIn的文档。我们需要向URL发送POST请求https://api.linkedin.com/uas/oauth/requestToken 阅读:http://developer.linkedin.com/documents/getting-oauth-token – 2013-01-09 22:00:03