繁体   English   中英

获取Facebook专辑封面照片 - Android

[英]Fetch Facebook album cover photo - Android

我尝试从Facebook获取专辑数据,并使用方法获取专辑封面照片。 我得到这样的回应;

{Response:responseCode:200,graphObject:GraphObject {graphObjectClass = GraphObject,state = {“FACEBOOK_NON_JSON_RESULT”:“ \\ u0000 \\ u0010JFIF \\ u0000 \\ u0001 \\ u00002 \\ u0000 \\ u0000 \\ u0000 \\ u00001 \\ u0000 \\ u0001 \\ u0000 \\ u0000 \\ u0000 \\ u0000 \ Photoshop“}},错误:null,isFromCache:false}

那是什么意思? 我怎样才能获得图片网址或图片? 代码在这里:

   for(final FbAlbumItem f: albums){
        Bundle params = new Bundle();
        params.putString("type", "small");
        new Request(
                Session.getActiveSession(),
                "/"+f.getAlbumId()+"/picture",
                params,
                HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
        /* handle the result */
                        Log.i("SocialManager", "" + response);
                        JSONObject obj = response.getGraphObject().getInnerJSONObject();

                        try {

                          JSONObject o = obj.getJSONObject("albums").getJSONObject("data");
                            String url = o.getString("url");
                           f.setImageUrl(url);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
        ).executeAsync();

FbAlbumItem: String albumId; String albumName; String albumCover; String imageUrl; String albumId; String albumName; String albumCover; String imageUrl;

解决了。 我用我的方法做了一些改变。 添加此参数

  Bundle params = new Bundle(); params.putBoolean("redirect", false); 

感谢您的灵感。

先决条件 - 非公开相册的user_photos权限

使用cover_photo字段获取它

me/albums/album_id?fields=cover_photo

Doc 在这里参考

你可以这样做。

final Session session = Session.getActiveSession();
    if (session.isOpened()) {
        final String authToken = session.getAccessToken();
        // saveToPreferences(ApplicationData.FB_TOKEN, authToken);
        Bundle params = new Bundle();
        params.putBoolean("redirect", false);
        params.putString("height", "400");
        params.putString("type", "normal");
        params.putString("width", "400");
        /* make the API call */
        new Request(
                session,
                "/me/albums/{album-id}",
                params,
                HttpMethod.GET,
                new Request.Callback() {
                    public void onCompleted(Response response) {
                        //cover_photo_fetch = response.cover_photo.toString();
                        Log.d("Picture", response.toString());
                        try {
                            userModel = UserModel.getInstance(mContext);
                            personPhotoUrl = response.getGraphObject().getInnerJSONObject().getJSONObject("data").getString("url");

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
        ).executeAsync();

暂无
暂无

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

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