2017-04-11 119 views
-1

我已經創建了一個Android應用程序,我只想獲取Facebook用戶的個人資料照片。獲取Facebook專用圖片使用GraphAPI

我嘗試使用Graph API,但它提供了所有的相冊。有什麼辦法只能找到用戶的個人資料照片?

我在圖形API嘗試下面的命令:?

我/場= {照片相冊}

感謝。

+0

https://graph.facebook.com/UID/picture?height=200&width=200,UID =配置ID – Janak

+0

@Janak我需要所有的照片,而不是單一 –

+0

@saragZala更新您的問題,你提到這個「我只想得到Facebook用戶的個人資料照片。」 – Janak

回答

0

最後通過了下面的代碼解決方案:

GraphRequest request = GraphRequest.newMeRequest(
      AccessToken.getCurrentAccessToken(), 
      new GraphRequest.GraphJSONObjectCallback() { 
       @Override 
       public void onCompleted(JSONObject object, GraphResponse response) { 
        String id; 
        try { 
         final JSONArray jsonArray = object.getJSONObject("albums").getJSONArray("data"); 
         for (int i = 0; i < jsonArray.length(); i++) { 
          if (jsonArray.getJSONObject(i).getString("name").equals("Profile Pictures")) { 
           id = jsonArray.getJSONObject(i).getString("id"); // ID of Profile Pictures Album 

           new GraphRequest(
             AccessToken.getCurrentAccessToken(), 
             "/" + id + "?fields=photos.limit(6){picture}", 
             null, 
             HttpMethod.GET, 
             new GraphRequest.Callback() { 
              public void onCompleted(GraphResponse response) { 
               try { 
                JSONObject jsonMain = response.getJSONObject(); 
                JSONObject jsonGraphObj = jsonMain.getJSONObject("graphObject"); 
                if (jsonGraphObj.has("photos")) { 
                 if (jsonGraphObj.getJSONObject("photos").has("data")) { 
                  JSONArray jsonArrayData = jsonGraphObj.getJSONObject("photos").getJSONArray("data"); 
                  for (int i = 0; i < jsonArray.length(); i++) { 
                   if (i != 0) { 
                    String url = jsonArrayData.getJSONObject(i).getString("picture"); 
                   } 
                  } 
                 } 
                } 
               } catch (Exception e) { 
                e.printStackTrace(); 
               } 
              } 
             } 
           ).executeAsync(); 
          } 
         } 
        } catch (Exception e) { 
         e.printStackTrace(); 
         DialogsUtils.removeProgressDialog(); 
        } 
       } 
      }); 

    Bundle parameters = new Bundle(); 
    parameters.putString("fields", "albums"); 
    request.setParameters(parameters); 
    request.executeAsync(); 
相關問題