2010-09-14 83 views
3

m試圖從android的facebook中的愚蠢的相冊中獲取所有照片,我正在使用facebook android sdk來完成任務,但問題是,我不知道訪問哪個url請求相冊內的照片?從Facebook的相冊中獲取照片android

回答

10

https://graph.facebook.com/ALBUM_ID/photos

如果它是那麼一個特定的人:

https://graph.facebook.com/me/albums/

,然後選擇相冊ID,然後使用第一個呼叫

編輯

你在創建F時也需要給予權限權限字符串數組中的acebook對象還需要添加user_photos以便能夠加載照片

+1

嗯,我試過https://graph.facebook.com/me/albums/,但其返回{ 「數據」:[]} - 空數據雖然我有一個相冊創建的名稱「事件」 – Hunt 2010-09-14 09:11:06

+0

這取決於相冊/用戶的隱私設置 – BeRecursive 2010-09-14 13:13:26

+1

您需要user_photos權限 – BeRecursive 2010-09-14 16:27:41

1

代碼適用於我。

我有兩個功能 - 一個是獲取專輯ID和另一個只是檢索該特定相冊中的所有圖像。

首先使用test()函數,然後使用downloadpic()

public void test() 
{ 

    facebook.getAccessToken(); 

    JSONArray albumss=null; 
    String response = null; 
    try { 
     response = facebook.request("me/albums"); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    JSONObject json = null; 
    try { 
     json = Util.parseJson(response); 
    } catch (FacebookError e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    JSONArray albums = null; 
    try { 
     albums = json.getJSONArray("data"); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    for (int i =0; i < albums.length(); i++) { 
     JSONObject album = null; 
     try { 
      album = albums.getJSONObject(i); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }      
     try { 
         //Here I have selected Profile pic album. 
      if (album.getString("type").equalsIgnoreCase("profile")) { 
      // JSONArray al=null; 
       wallAlbumID = album.getString("id"); 
         // Now you have album id in wallAlbumID(global varible). 
       Log.d("JSON", wallAlbumID); 
       break; 
      } 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

現在使用downloadpic()

void downloadpic() 
{ 


    facebook.getAccessToken(); 


    String response = null; 
    try { 
     response = facebook.request(wallAlbumID+"/photos"); 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    JSONObject json = null; 
    try { 
     json = Util.parseJson(response); 
    } catch (FacebookError e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    JSONArray photos = null; 
    try { 
     photos = json.getJSONArray("data"); 

    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    for (int i =0; i < photos.length(); i++) { 
     JSONObject a = null; 
     try { 
      a = photos.getJSONObject(i); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    String testing = null; 
    try { 
     testing = a.getString("source"); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
\ 
    URL value=null; 
    try { 
     value=new URL(testing); 
      //Now you have URL of that particular image use it in your way 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


      break; 
     } 
    } 
+2

它返回Json:{「data」:[]} – 2012-12-07 19:41:37

+0

你在哪裏請求user_photos權限?這個很重要! – 2014-01-09 22:06:37

+1

當u嘗試登錄到FB,像報關備案清單 permissionNeeds = Arrays.asList( 「public_profile」, 「電子郵件」, \t \t \t 「user_posts」, 「user_photos」, 「user_birthday」, 「user_friends」);並使用它,而登錄像這樣LoginManager.getInstance()。logInWithReadPermissions(this, \t \t \t \t permissionNeeds); – 2015-09-17 11:07:01

相關問題