将帖子提交到android后,如何捕获Facebook上传完成事件并获取postId? (2018年8月之后的重大更改)

时间:2018-08-28 14:11:27

标签: android facebook fbsdksharedialog

我的应用程序:

用户可以将视频上传到他/她的时间轴,并在我的应用程序中显示已发布帖子的类似数据,为此我需要已上传帖子的post_id。

视频完全可以正常上传,但是一旦我在facebook的ShareDialog上点击“共享”按钮,它就会在视频上传完成之前将控制权返回给回调方法的onSuccess。另外,result.getPostId()始终为null。

需要帮助:

  1. 有人可以告诉我上传后如何获取postId吗?
  2. 有什么方法可以捕获上载完成事件,然后我可以从“ {user-id} / posts”图形网址中查询用户上载的最新帖子,并从那里获取post_id?

这是将视频上传到Facebook的代码:

public void shareVideoOnFacebook(Uri VideoUri , final String FileId) {
    try {

            FacebookCallback<Sharer.Result> shareCallback = new   FacebookCallback<Sharer.Result>() {
            @Override
            public void onSuccess(Sharer.Result result) {
                result.getPostId();  //It is always null.
            }
            @Override
            public void onCancel() {

            }
            @Override
            public void onError(FacebookException error) {

            }
        };
        shareDialog = new ShareDialog(activity);
        callbackManager = CallbackManager.Factory.create();

        shareDialog.registerCallback(callbackManager , shareCallback);

        AccessToken accessToken = AccessToken.getCurrentAccessToken();
        boolean isLoggedIn = accessToken != null && !accessToken.isExpired();

        if (isLoggedIn) {

            ShareVideo video = new ShareVideo.Builder().setLocalUrl(VideoUri).build();

            ShareVideoContent content = new ShareVideoContent.Builder().setVideo(video).setPageId(FileId).build();

            shareDialog.show(content , ShareDialog.Mode.AUTOMATIC);
        }
    } catch (Exception ex) {
        ex.getMessage();
    }
}

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);

}

0 个答案:

没有答案