我正试图在我的应用程序中使用Facebook sdk添加一个简单的Facebook共享对话框。 我做了共享教程中描述的所有内容:https://developers.facebook.com/docs/android/share?locale
在onActivityResult Callback中,我使用uiHelper回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback() {
@Override
public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data) {
Log.e("Activity", String.format("Error: %s", error.toString()));
}
@Override
public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data) {
boolean didCancel = FacebookDialog.getNativeDialogDidComplete(data);
String completionGesture = FacebookDialog.getNativeDialogCompletionGesture(data);
String postId = FacebookDialog.getNativeDialogPostId(data);
Log.i("Activity", "Success!");
}
});
}
didCancel永远是真的 - 如果我贴在墙上也无所谓。 completionGesture和postId始终为null。 有没有办法没有请求许可获得用户张贴在墙上的回叫天气?
答案 0 :(得分:1)
来自javadocs - https://developers.facebook.com/docs/reference/android/current/class/FacebookDialog#getNativeDialogDidComplete - 如果本机对话框正常完成(没有错误或异常),此方法将返回true。因此,如果用户单击“共享/发布”按钮或“取消”,则对话框将正常完成。只有在出现错误时,此方法才会返回false。
至于完成手势,请参阅Android共享文档的处理响应部分 - https://developers.facebook.com/docs/android/share#linkshare-handlingresponses - 如果用户通过您的应用登录Facebook登录,您将只会获得这些字段。如果用户尚未通过您的应用登录,则无法使用。