无法获取 Facebook Graph API 好友详细信息



我试图从Graph中获取一个用户和他的朋友的分数,但我遇到了错误。"只有创建视图层次结构的原始线程才能访问其视图。"执行时。

JSONArray responseJSONArray = new JSONArray(response);

我有所有需要的许可。我成功地使用将分数发布到图表中

fbParams.putString("score", "" + 555);
    Request postScoreRequest = new Request(Session.getActiveSession(),
            "me/scores",
            fbParams,
            HttpMethod.POST,
            new Request.Callback() {
...
...

当我试图得分时。甚至从使用此模式的浏览器

https://graph.facebook.com/{userid}/scores?access_token={app_access_token}

我有

{"data":[{"user":{"name":"MYUSERNAME","id":"MIID"},"score":555,"application":{"name":"Tomato Smasher","namespace":"tomatosmasher","id":"354552234651550"}}]}

我从以下位置获取访问代码:https://developers.facebook.com/tools/explorer

但在安卓应用程序中使用:

Session.getActiveSession().getAccessToken();

// Execute the HTTP Get to our server for the scores of the user's friends
                HttpClient client = new DefaultHttpClient();
                String getURL = "https://graph.facebook.com/" + currentUserFBID + "/scores?access_token=" + currentUserAccessToken;
                HttpGet get = new HttpGet(getURL);
                HttpResponse responseGet = client.execute(get);
                System.out.println("ALL GOOD2");
                // Parse the response
                HttpEntity responseEntity = responseGet.getEntity();
                String response = EntityUtils.toString(responseEntity);
                System.out.println("ALL GOOD3");
                if (!response.equals(null)) {
                    System.out.println("ALL GOOD4");
                    System.out.println(response);
                    JSONArray responseJSONArray = new JSONArray(response);  // <----------------got EXEPTION HERE
                    System.out.println("ALL GOOD4.5");

您可以使用此代码使用facebook3.0访问好友分数

字符串fqlQuery="SELECT value FROM score WHERE user_id="+"Enter_user_id_Here"+"AND app_id="+"在此处输入应用程序id";

            Bundle params = new Bundle();
            params.putString("q", fqlQuery);
            Session session = Session.getActiveSession();
            Request request = new Request(session,
                    "/fql",                         
                    params,                         
                    HttpMethod.GET,                 
                    new Request.Callback(){       
                public void onCompleted(Response response) {
                    Log.i("Result: ",response.toString());
                    try{
                        GraphObject graphObject = response.getGraphObject();
                        JSONObject jsonObject = graphObject.getInnerJSONObject();
                        JSONArray array = jsonObject.getJSONArray("data");
                            JSONObject data = array.getJSONObject(0);
                            Score = data.getString("value");

                    }catch(JSONException e){
                        e.printStackTrace();
                    }
                }                  
            }); 
            Request.executeBatchAsync(request); 

最新更新