2016-08-02 88 views
1

我正在使用Graph API來檢索我的Facebook頁面的訪問令牌..我使用下面的代碼來獲取包含我的Facebook頁面令牌的JSON respnse。從JSONResponse檢索訪問令牌android

AccessToken token=AccessToken.getCurrentAccessToken(); 

     GraphRequest request = GraphRequest.newGraphPathRequest(
       token, 
       "/me/accounts", 
       new GraphRequest.Callback() { 
        @Override 
        public void onCompleted(GraphResponse response) { 
         // Insert your code here 
         try { 

         //what should I do here..... 

         }catch (JSONException e) 
         { 
          e.printStackTrace(); 
         } 
        } 
       }); 

     request.executeAsync(); 

我得到這個JSON作爲響應

{ 
    "data": [ 
    { 
    "access_token": "<access_token_is_here>", 
    "category": "Clothing", 
    "name": "<page_name_is_here>", 
    "id": "<id_is_here>", 
    "perms": [ 
    "EDIT_PROFILE", 
    "CREATE_CONTENT", 
    "MODERATE_CONTENT", 
    "CREATE_ADS", 
    "BASIC_ADMIN" 
    ] 
} 
], 
"paging": { 
"cursors": { 
    "before": "MjkzMDAyNzM0MTYwNTQ1", 
    "after": "MjkzMDAyNzM0MTYwNTQ1" 
    } 
    } 
} 

我的問題is..How我可以從這個JSON響應得到的accessToken?我知道我可以得到令牌作爲字符串..但我需要它作爲訪問令牌本身,以便我可以使用它來發布狀態到我的Facebook頁面上....我是一個初學者,在此如此熱心幫助我...由於

回答

0
 JSONObject response=new JSONObject(resp); 

JSONArray data=response.getJSONArray("data"); 

     String accessToken=""; 

for(int i=0;i<data.lenght();i++){ 

JSONObject temp=data.getJSONObject(i); 

if(temp.has("access_token"){ 

accessToken=temp.getString("access_token"); 

break; 

} 

} 

現在你也可以它,無論你想,如果你想堅持將其存儲到sharedPref或sqlite的。

+0

'data'是一個** JSONArray **而不是** JSONObject **。 –

+1

如果我得到我的accessToken作爲字符串如何在另一個graphrequest中使用它? – Ben

+0

更新了答案 –

0
String accesstoken = response.getJsonArray("data").getJSONObject(0).getString("access_token");