2010-09-14 2 views
3

m пытается получить все фотографии с перкулярного альбома из facebook в android, я использую facebook android sdk для выполнения задачи, но проблема в том, что я не знаю, какой запрос url требуется для доступа фотографии внутри альбома?fetch photos from facebook album in android

ответ

10

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

Если это для конкретного человека, то:

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

А затем выбрать идентификатор альбома, а затем использовать первый вызов

EDIT

You также необходимо будет дать разрешение при создании F acebook в массиве Permission String также необходимо добавить user_photos, чтобы иметь возможность загружать фотографии

+1

Ну я пытался https://graph.facebook.com/me/albums/, но его возвращение { "данные": []} - пустой данные, хотя У меня есть название альбома «events» – Hunt

+0

Это зависит от настроек конфиденциальности альбома/пользователя. – BeRecursive

+1

. Вам нужно разрешение user_photos. – BeRecursive

1

Код Работа для меня.

У меня есть две функции: одна - получить идентификатор альбома, а другой - только получение всех изображений из этого конкретного альбома.

Первое использование 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": []} –

+0

Где вы запрашивали разрешение user_photos? Это важно! –

+1

, когда и попытаться войти в Fb, как в декларации, поданной Список permissionNeeds = Arrays.asList ("public_profile", "электронная почта", \t \t \t "user_posts", "user_photos", "user_birthday", "user_friends"); и использовать его во время входа в систему, как это LoginManager.getInstance(). logInWithReadPermissions (это, \t \t \t \t permissionNeeds); –