【问题标题】:How to get the share(Post) photo URl or link with facebook SDk?如何获取分享(发布)照片 URL 或与 facebook SDK 的链接?
【发布时间】:2017-07-28 13:27:29
【问题描述】:

我想获取 Facebook 帖子图片的 Url。我已使用 logInWithPublishPermissions 在 Facebook 上成功发布了照片,但我希望在回调中使用帖子图片的链接或 Url....

 SharePhoto photo = new SharePhoto.Builder()
            .setBitmap(bitmap)
            .setCaption("VodaFone Rakshavandhan!")
            .build();

    SharePhotoContent content = new SharePhotoContent.Builder()
            .addPhoto(photo)
            .build();



ShareDialog shareDialog = new ShareDialog(FacebookShareActivity.this);
    shareDialog.show(content, ShareDialog.Mode.AUTOMATIC);

    shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
        @Override
        public void onSuccess(Sharer.Result result) {

            Log.e("@@@result", String.valueOf(result));

        /*  "/"+mFBID+"_"+postid+"?fields=link,message",*/
            String postid=result.getPostId().toString();

        mUrlFb="https://www.facebook.com/photo.php?fbid="+postid;
            Log.e("@@@mUrlFb",mUrlFb);

                GraphRequest request = new GraphRequest(
                        accessToken,
                    "/"+mFBID+"_"+postid,
                    null,
                    HttpMethod.GET,
                    new GraphRequest.Callback() {
                        public void onCompleted(GraphResponse response) {


        Log.e("@@response", String.valueOf(response));

                        }



    });


            Bundle parameters = new Bundle();
            parameters.putString("fields", "id,link,message");
            request.setParameters(parameters);
            request.executeAsync();
        /*  new GraphRequest(
                    AccessToken.getCurrentAccessToken(),
                    result.getPostId(),
                    null,
                    HttpMethod.GET,
                    new GraphRequest.Callback() {
                        public void onCompleted(GraphResponse response) {
                                Log.e("@@response", String.valueOf(response));
                        }
                    }
            ).executeAsync();*/




        }

        @Override
        public void onCancel() {
        }

        @Override
        public void onError(FacebookException e) {
            e.printStackTrace();
        }
    });

我收到了来自这个图表请求的响应

  {Response:  responseCode: 200, graphObject: 
 {"id":"104752556880730_105851436770842"}, error: null}

任何帮助表示感谢。

【问题讨论】:

  • 您需要获取您在响应中获得的帖子 ID,并使用该 ID 发出 API 请求,请求该帖子的 permalink_url 字段。
  • 仔细阅读this,有一个名为“链接”的字段 - Facebook 上照片的链接
  • @CBroe 非常感谢先生,它运行良好。我在请求中传递了唯一的 permalink_url,它会回复我,我要再次感谢。
  • 嗨,arjun,你如何获得 postId?我的总是 null :(
  • @Freya 您需要从 facebook 获得 publish_action 的许可,然后在共享对话框的注册回调中使用上面的代码

标签: java android facebook facebook-graph-api


【解决方案1】:

特别感谢@CBroe

只添加参数**permalink_url**

 parameters.putString("fields", "id,link,message,permalink_url");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多