【发布时间】:2015-08-07 15:49:19
【问题描述】:
我正在通过 Android 中的分享对话框在 FB 上分享视频。共享工作得很好。但是,FB post id 返回 null。甚至在视频上传之前回调就会返回。如果我遗漏了什么,请告诉我。下面是我的代码。
public class TestFragment extends Fragment {
private CallbackManager callbackManager;
private ShareDialog shareDialog;
public TestFragment() {
// Required empty public constructor
}
public static TestFragment newInstance(String path, String json) {
TestFragment fragment = new TestFragment();
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getActivity());
callbackManager = CallbackManager.Factory.create();
shareDialog = new ShareDialog(this);
// this part is optional
shareDialog.registerCallback(callbackManager, new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
Timber.d("result.getPostId() :: " + result.getPostId());
}
@Override
public void onCancel() {
Timber.d("Facebook : Cancelled");
}
@Override
public void onError(FacebookException e) {
Timber.d(e.getMessage());
}
});
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_test, container, false);
ButterKnife.inject(this, view);
return view;
}
@OnClick(R.id.facebookShare)
public void share() {
Timber.d("share button pressed");
if (ShareDialog.canShow(ShareVideoContent.class)) {
Timber.d("showing share dialog");
shareDialog.show(getVideoContent());
} else {
Timber.d("unable to show the share dialog");
}
}
private ShareVideoContent getVideoContent() {
Timber.d(mVideoMetadata.getVideoId());
ShareVideo shareVideo = new ShareVideo.Builder()
.setLocalUrl(Uri.parse("... file ..."))
.build();
ShareVideoContent content = new ShareVideoContent.Builder()
.setVideo(shareVideo)
.build();
return content;
}
@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
【问题讨论】:
-
目前面临同样的问题
-
只有当您的应用实现 Facebook 登录并请求“publish_actions”权限时,才会返回帖子 ID。这是您的应用要求的吗?
-
@subeeshb 感谢您的指点。目前,我还没有实现FB登录。我会更新一次,我实现FB登录。
-
mukeikh,你的问题解决了吗?
-
在访问该功能之前需要登录FB。
标签: android facebook facebook-sharer