2017-09-12 146 views
0

我實現了我的android應用程序和Facebook配置文件之間的身份驗證。我能夠獲得登錄的用戶數據。但是我需要讓用戶(只)玩遊戲(第1步)。Facebook的api android獲取朋友列表

這是我到目前爲止的代碼:

GraphRequest request = new GraphRequest(
      AccessToken.getCurrentAccessToken(), 
      "/{user-id}/friends", 
      null, 
      HttpMethod.GET, 
      new GraphRequest.Callback() { 
       public void onCompleted(GraphResponse response) { 


       } 
      } 
    ).executeAsync(); 

技術上我的反應應該是JSON格式,我應該能夠從它採取什麼樣的,我需要。但是,每當我嘗試我的項目凍結並重新啓動。

對於step2,對於如何從我的應用程序發送最高分數到在Facebook上發佈它,然後能夠檢索並顯示一次我獲得玩遊戲的朋友列表,您有什麼建議嗎?

謝謝

+0

回覆:第2步 - 任何關於https://developers.facebook.com/docs/games/services/scores-achievements的內容都不清楚......? – CBroe

+0

@CBroe for Step2它變得清晰,因爲我解決了第1步。我仍然沒有工作它(剛剛完成step1與libgdx連接),但它應該很簡單,我猜想,因爲困難的部分完成。 –

回答

-1

使用此GameRequestDialog加載誰是不可應用的用戶朋友。

GameRequestDialog dialog; 
GameRequestContent content = new 
GameRequestContent.Builder(). 
      setTitle("title"). 
      setMessage("message"). 
     setFilters(GameRequestContent.Filters.APP_NON_USERS) 
.build(); 
dialog.show(content); 

除此之外,通過它會提供很大的幫助。這是facebook實現的示例項目。

https://github.com/fbsamples/android-friend-smash

希望幫助

+0

我能夠使用「/ {用戶ID} /朋友嗎?」從圖形請求中獲取結果並獲取JSON數組。 –

0

我可以使用線程來解決這個問題。

final GraphRequest request_getFriends = new GraphRequest(
        AccessToken.getCurrentAccessToken(), 
        "/" + AccessToken.getCurrentAccessToken().getUserId() + "/friends?", 
        null, 
        HttpMethod.GET, 
        new GraphRequest.Callback() { 

         @Override 
         public void onCompleted(GraphResponse response) { 

          JSONObject object = response.getJSONObject(); 
          try { 
           if (object !=null){ 
           JSONArray data = object.getJSONArray("data"); 
           for (int i = 0; i < data.length(); i++) { 
            String id = data.getJSONObject(i).getString("id"); 
            String name = data.getJSONObject(i).getString("name"); 
            ListOfFriendsIDS.add(id); 
            ListOfFriendsNames.add(name); 
           } 
           } 
          } catch (JSONException e) { 

          } 
         } 
        } 
      ); 


      Thread t = new Thread(new Runnable() { 
       @Override 
       public void run() { 
        request_getFriends.executeAndWait(); 
       } 
      } 
      ); 

      t.start(); 

之前的代碼異步執行那裏我的結果沒有被正確提取。