簡體   English   中英

從android中的facebook相冊中獲取照片

[英]fetch photos from facebook album in android

我試圖從android中的facebook的特定相冊中獲取所有照片,我使用facebook android sdk來完成任務但問題是,我不知道訪問相冊內的照片需要什么URL請求?

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

如果是特定的人那么:

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

然后選擇相冊ID,然后使用第一個電話

編輯

您還需要在Permission String數組中創建Facebook對象時給予權限,還需要添加user_photos以便能夠加載照片

代碼為我工作。

我有兩個功能 - 一個是獲取Album 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;
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM