2013-08-02 46 views
0

我對LinkedIn API的使用很困難,我確信我做錯了什麼,但我無法弄清楚什麼。我有一個ASP.NET MVC 4應用程序和AuthConfig.cs裏面我有:使用ASP.NET MVC和OAuthWebSecurity檢索LinkedIn用戶配置文件時出錯

OAuthWebSecurity.RegisterLinkedInClient(「apikey」,「secretkey」);

使用默認的AccountController我能夠對LinkedIn API進行身份驗證。在ExternalLoginCallback方法中,我將accessToken存儲在會話變量中。但是,在此之後,我無法使用此accessToken獲取有關用戶個人資料的信息。我總是得到一個401(無效的訪問令牌)。這是我在我的測試方法之一:

(HttpWebRequest的)WebRequest.Create(的String.Format( 「https://api.linkedin.com/v1/people/~?oauth2_access_token= {0}」 的accessToken)

任何人都可以指出我錯過了什麼

謝謝!

回答

0

這是因爲目前的MVC實現使用您好!OAuth1及您好!OAuth1的accessToken不會爲oath2請求工作。這是非常複雜的,我爲之奮鬥一下,你會寫自己的供應商。見https://coderwall.com/p/rznlfg。但我需要一個OAuth2Client集成實現MVC4。可以anybod你幫忙嗎?

+0

你說得對。經過更多的調查,我終於搞清楚了,但謝謝!我實現了我自己的LinkedInClient,這不是一件困難的事情。基本上,我所做的只是創建一個從OAuth2Client繼承的新類,然後我重寫了VerifyAuthentication,GetServiceLoginUrl,GetUserData和QueryAccessToken方法。 你可以從FacebookClient獲得一些想法(http://bit.ly/1oyrKoL) – nepomucenobr

+0

順便說一句,這可能有所幫助: 在GetUserData上,使用類似https://api.linkedin.com/v1/people/~ :(ID,第一姓,名,標題,公衆矚目的URL)oauth2_access_token = ?。 在GetServiceLoginUrl上,使用https://www.linkedin.com/uas/oauth2/authorization作爲基礎URL並追加以下查詢字符串參數:response_type(始終爲「code」),client_id,scope,state和redirect_uri。 在QueryAccessToken上,使用https://api.linkedin.com/uas/oauth2/accessToken並傳遞這些參數:grant_type(總是「authorization_code」),代碼,client_id,client_secret和rediret_uri。 – nepomucenobr

相關問題