Как поймать событие завершения загрузки Facebook и получить postId после отправки сообщения на android? (После августа 2018 года - критические изменения) - PullRequest
0 голосов
/ 28 августа 2018

Мое приложение:

Пользователь может загружать видео на свою временную шкалу, и на нем будут отображаться аналогичные данные опубликованного поста в моем приложении, для которого мне нужен post_id загруженного поста.

Видео загружается совершенно нормально, но как только я нажимаю кнопку «Поделиться» на ShareDialog на Facebook, он возвращает управление onSuccess метода обратного вызова даже до окончания загрузки видео. Кроме того, result.getPostId () всегда имеет значение null.

Нужна помощь в:

  1. Может кто-нибудь сказать мне, как получить postId после загрузки?
  2. Есть ли способ отловить событие окончания загрузки, после чего я могу запросить последнее сообщение, загруженное пользователем, из URL-адреса графика "{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);

}
...