Tôi đang sử dụng facebook android sdk v3.5 trong ứng dụng của tôi để chia sẻ messsage. Đối với số liệu thống kê tôi cần theo dõi xem tin nhắn đã được đăng thành công hay chưa. Tuy nhiên, tôi luôn nhận được null bằng cách nhận FacebookDialog.getNativeDialogCompletionGesture
trong onActivityResult()
Android Facebook SDK Chia sẻ hộp thoại: không bao giờ trở về Hoàn thành cử chỉ
Mã tôi sử dụng rất chuẩn.
Mã để gọi hộp thoại phần facebook:
private void sendToFacebook()
{
if (!FacebookDialog.canPresentShareDialog(getActivity().getApplicationContext(), FacebookDialog.ShareDialogFeature.SHARE_DIALOG))
{
return;
}
FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(getActivity())
.setName(getString(R.string.refer_friend_facebook_name))
.setDescription(getString(R.string.refer_friend_facebook_description))
.setCaption(getString(R.string.facebook_app_name))
.setLink(getString(R.string.web_endpoint))
.setPicture(getString(R.string.facebook_picture_90))
.build();
activity.getFacebookUiHelper().trackPendingDialogCall(shareDialog.present());
}
Mã tôi sử dụng để kết quả quá trình gọi:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
facebookUiHelper.onActivityResult(requestCode, resultCode, data, new FacebookDialog.Callback()
{
@Override
public void onError(FacebookDialog.PendingCall pendingCall, Exception error, Bundle data)
{
// track on error
}
@Override
public void onComplete(FacebookDialog.PendingCall pendingCall, Bundle data)
{
if (FacebookDialog.getNativeDialogDidComplete(data))
{
if (FacebookDialog.getNativeDialogCompletionGesture(data) == null
|| FacebookDialog.COMPLETION_GESTURE_CANCEL.equals(FacebookDialog.getNativeDialogCompletionGesture(data)))
{
// track cancel
}
else
{
// track post
}
}
else
{
// track cancel
}
}
});
}
Trong tài liệu facebook sdk nó được tuyên bố rằng:
FacebookDialog. getNativeDialogCompletionGesture - Chỉ khả dụng nếu người dùng đăng nhập vào ứng dụng của bạn bằng Facebook và đã hoàn thành là đúng. Giá trị là "bài đăng" hoặc "hủy".
Nhưng tôi không thể hiểu chính xác cụm từ này có ý nghĩa gì.
Cảm ơn bạn! Điều này giải thích vấn đề. Tuy nhiên nó khá lạ từ phía facebook. –
Tại sao chọn Facebook ??? Chúng tôi đang sử dụng Đăng nhập một lần thông qua ứng dụng Facebook mặc định? Tại sao chúng ta cần điều này? – BQuadra
Lý do cơ bản được đưa ra, nếu người dùng chưa ủy quyền ứng dụng của bạn thông qua FB, thì ứng dụng của bạn không thể biết người dùng đang làm gì trên FB. –