从JSONResponse android中检索访问令牌

时间:2016-08-02 12:27:17

标签: android facebook facebook-graph-api

我使用Graph API来检索我的facebook页面的访问令牌。我使用下面的代码获取一个JSON respnse,其中包含我的facebook页面的令牌。

 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"
    }
  }
}

我的问题是..如何通过此JSON响应获取accessToken?我知道我可以将令牌作为String ..但我需要它作为访问令牌本身,以便我可以使用它将状态发布到我的Facebook页面....我是这样的初学者如此友好帮助我...感谢

2 个答案:

答案 0 :(得分: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中。

答案 1 :(得分:0)

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