2013-03-29 8 views
0

J'essaie d'obtenir à partir du graphique le score d'un utilisateur et son ami, mais j'ai eu des erreurs. "Seul le thread d'origine qui a créé une hiérarchie de vues peut toucher ses vues." Lors de l'exécution.Vous ne pouvez pas obtenir Facebook Graph API amis détails

JSONArray responseJSONArray = new JSONArray(response); 

J'ai toutes les permissions nécessaires. Je succès dans l'affichage partition au graphique en utilisant:

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

Quand je en essayant d'obtenir le score . Même à partir du navigateur en utilisant ce modèle

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

Je suis

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

Je suis le code d'accès: https://developers.facebook.com/tools/explorer

Mais dans l'application Android en utilisant:

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"); 
+0

Pouvez-vous partager l'erreur exacte à laquelle vous faites face? – mthmulders

+0

Hey l'exception que je reçois est "Seul le thread d'origine qui a créé une hiérarchie de vues peut toucher ses vues." " –

Répondre

2

Vous pouvez utiliser ce code pour accéder au score des amis en utilisant Facebo ok 3.0

Chaîne fqlQuery = "CHOISIR la valeur du score WHERE id_utilisateur =" + "Enter_User_Id_Here" + "ET app_id =" + "Entrer l'identifiant de l'application ici";

  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);