2013-10-27 44 views
3

我試圖讓linkedIn使用他們的API,但是當我嘗試檢索連接時,我得到401未經授權的錯誤。使用oauth2_access_token獲取linkedIn連接

官方文檔中

您必須代表 使用一個訪問令牌作出authenticated call用戶的

使API調用現在你可以使用這個的access_token作出API通過在 希望進行的API調用結束時追加 「oauth2_access_token = access_token」來代表此用戶呼叫。

,我試圖做的API調用如下

錯誤 - > http://api.linkedin.com/v1/people/~/connections:(id,headline,first-name,last-name)?format=json&oauth2_access_token=的access_token

我曾嘗試與沒有任何問題下端點做到這一點。

確定 - >https://api.linkedin.com/v1/people/~:(id,first-name,last-name,formatted-name,date-of-birth,industry,email-address,location,headline,picture-urls::(original))?format=json&oauth2_access_token=的access_token

端點連接API的這個名單在這裏描述 http://developer.linkedin.com/documents/connections-api 我只是複製並從那裏粘貼一個端點,所以這個問題是什麼是與端點問題獲取連接?我錯過了什麼?

編輯: 爲PREAUTH地址我使用

https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=ConsumerKey &範圍= r_fullprofile%20r_emailaddress%20r_network &狀態 &狀態= NewGuid & REDIRECT_URI = Encoded_Url

https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code=QueryString_Code & REDIRECT_URI = EncodedCallback &的client_id = ConsummerKey & client_secret = ConsumerSecret

請附上登錄屏幕,要求

enter image description here

EDIT2權限

: 切換到HTTPS和像魅力一樣工作!

+1

切換爲HTTPS和擺脫了這個錯誤,以及 – Pierre

回答

4

訪問令牌針對特定的scope頒發,它描述了您請求的權限範圍。當您啓動身份驗證事務時,您將添加一個特定參數(稱爲範圍),該參數請求用戶同意訪問您所需的內容(在本例中爲其連接)。如果我沒有記錯,在LinkedIn上是r_network

這裏查看他們的文檔:http://developer.linkedin.com/documents/authentication#granting

所以,您的通話是完全確定,但很有可能你的的access_token沒有足夠的權限。

+0

感謝您的答覆!請看看我的更新!我正在使用r_netowrk! –

+0

明白了!我只是複製並粘貼到broser的url得到了ssl需要的異常! XD只是一個小細節!切換到https和工作! –

+0

LinkedIn是否提供API(公開或合作伙伴計劃)以獲取所有聯繫人(主要是第一個)?以前他們提供這樣的API,但在2015年,他們撤銷了這一點。 –

2
apiHelper.getRequest(getActivity(),"https://api.linkedin.com/v1/people/~/connections?modified=new", new ApiListener() { 
     @Override 
     public void onApiSuccess(ApiResponse response) { 
     } 

     @Override 
     public void onApiError(LIApiError error) { 
     } 
    }); 

如果您想獲得像在上面的代碼片段使用LinkedIn SDK爲Android用戶連接,

檢查此一等級com.linkedin.platform.utils.Scope SDK的權限。

請確保r_network在構建範圍時可用。例如

public static final LIPermission R_NETWORK = new LIPermission("r_network", "Your network"); 

現在可以使用這樣的構建範圍

Scope.build(Scope.R_BASICPROFILE, Scope.R_EMAILADDRESS, Scope.W_SHARE, Scope.R_FULLPROFILE, Scope.R_CONTACTINFO, Scope.R_NETWORK)