Мое приложение:
Пользователь может загружать видео на свою временную шкалу, и на нем будут отображаться аналогичные данные опубликованного поста в моем приложении, для которого мне нужен post_id загруженного поста.
Видео загружается совершенно нормально, но как только я нажимаю кнопку «Поделиться» на ShareDialog на Facebook, он возвращает управление onSuccess метода обратного вызова даже до окончания загрузки видео. Кроме того, result.getPostId () всегда имеет значение null.
Нужна помощь в:
- Может кто-нибудь сказать мне, как получить postId после загрузки?
- Есть ли способ отловить событие окончания загрузки, после чего я могу запросить последнее сообщение, загруженное пользователем, из 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);
}