简体   繁体   English

使用facebook最新的SDK获取用户相册?

[英]Fetch user albums using facebook latest SDK?

I would like to retrieve entire user photos from Facebook using latest SDK for creating much like a gallery using facebook images.i had tried the below code from here and couldn't make it.ain't getting any data from fb.can anyone show me any sample tutorial belongs to this or help to do this ? 我想使用最新的SDK从Facebook检索整个用户照片,以便使用Facebook图像创建类似于画廊的照片。我已经尝试从此处尝试以下代码,但无法实现。无法从fb获取任何数据。任何人都可以显示我有任何示例教程属于这个吗?

/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{user-id}/albums",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();

Try this code.. 试试这个代码。

 private ArrayList<FacebookAlbum> alFBAlbum = new ArrayList<>();
/*make API call*/
  new GraphRequest(
                    AccessToken.getCurrentAccessToken(),  //your fb AccessToken
                    "/" + AccessToken.getCurrentAccessToken().getUserId() + "/albums",//user id of login user
                    null,
                    HttpMethod.GET,
                    new GraphRequest.Callback() {
                        public void onCompleted(GraphResponse response) {
                            Log.d("TAG", "Facebook Albums: " + response.toString());
                            try {
                                if (response.getError() == null) {
                                    JSONObject joMain = response.getJSONObject(); //convert GraphResponse response to JSONObject
                                    if (joMain.has("data")) {
                                        JSONArray jaData = joMain.optJSONArray("data"); //find JSONArray from JSONObject
                                        alFBAlbum = new ArrayList<>();
                                        for (int i = 0; i < jaData.length(); i++) {//find no. of album using jaData.length()
                                            JSONObject joAlbum = jaData.getJSONObject(i); //convert perticular album into JSONObject
                                           GetFacebookImages(joAlbum.optString("id")); //find Album ID and get All Images from album
                                        }
                                    }
                                } else {
                                    Log.d("Test", response.getError().toString());
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    }
            ).executeAsync();

GetFacebookImages method GetFacebookImages方法

    public void GetFacebookImages(final String albumId) {
//        String url = "https://graph.facebook.com/" + "me" + "/"+albumId+"/photos?access_token=" + AccessToken.getCurrentAccessToken() + "&fields=images";
        Bundle parameters = new Bundle();
        parameters.putString("fields", "images");
        /* make the API call */
        new GraphRequest(
                AccessToken.getCurrentAccessToken(),
                "/" + albumId + "/photos",
                parameters,
                HttpMethod.GET,
                new GraphRequest.Callback() {
                    public void onCompleted(GraphResponse response) {
            /* handle the result */
                        Log.v("TAG", "Facebook Photos response: " + response);
                        tvTitle.setText("Facebook Images");
                        try {
                            if (response.getError() == null) {


                                JSONObject joMain = response.getJSONObject();
                                if (joMain.has("data")) {
                                    JSONArray jaData = joMain.optJSONArray("data");
                                    lstFBImages = new ArrayList<>();
                                    for (int i = 0; i < jaData.length(); i++)//Get no. of images {
                                        JSONObject joAlbum = jaData.getJSONObject(i);
                                        JSONArray jaImages=joAlbum.getJSONArray("images"); get images Array in JSONArray format
                                        if(jaImages.length()>0)
                                        {
                                            Images objImages=new Images();//Images is custom class with string url field
                                            objImages.setImage_url(jaImages.getJSONObject(0).getString("source"));
                                            lstFBImages.add(objImages);//lstFBImages is Images object array
                                        }
                                    }

                                   //set your adapter here
                                }
                            } else {
                                Log.v("TAG", response.getError().toString());
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                    }
                }
        ).executeAsync();
    }

Response from first request for get Album 首次索取相册请求

    {Response:  responseCode: 200, graphObject: {"data":[{"created_time":"2015-11-20T08:12:11+0000","name":"Untitled Album","id":"********"},
{"created_time":"2015-11-19T10:21:11+0000","name":"Mobile Uploads","id":"******"},
{"created_time":"2015-11-19T10:23:13+0000","name":"Timeline Photos","id":"*********"},
{"created_time":"2015-11-19T09:32:30+0000","name":"iOS Photos","id":"*******"},
 {"created_time":"2015-11-16T07:01:13+0000","name":"m","id":"***"}],"paging":{"cursors":{"before":"MTgzNzE3MTExOTcyMzMy","after":"MTgxOTg2NTI1NDc4NzI0"},"next":"https:\/\/graph.facebook.com\/v2.5\/USERID\/albums?access_token=*************************&limit=25&after=*********"}}, error: null}

Response from request for get images from perticular Album 要求获取垂直专辑中的图像的响应

{Response:  responseCode: 200, graphObject: {"data":[{"images":
[{"height":480,"source":"https:\/\/scontent.xx.fbcdn.net\/hphotos-xfa1\/v\/t1.0-9\/***_***_***_n.jpg?oh=***&oe=5715F3A6","width":360},
{"height":426,"source":"https:\/\/fbcdn-photos-e-a.akamaihd.net\/hphotos-ak-xfa1\/v\/t1.0-0\/p320x320\/1169**9**9_***_**_n.jpg?oh=***&oe=***&__gda__=1457348501_***","width":320},
{"height":225,"source":"https:\/\/fbcdn-photos-f-a.akamaihd.net\/hphotos-ak-xpf1\/v\/t1.0-0\/p75x225\/&&&_***_***_n.jpg?oh=***&oe=56D5CA47&__gda__=***_3ac27adf32ef0b1537657dc5e88616f6","width":168}],
"id":"&&&&539"}],"paging":{"cursors":{"before":"*******","after":"*********"}}}, error: null}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM