私はメッセージブックの共有のために私のアプリでfacebook android sdk v3.5を使用しています。統計については、メッセージが正常に投稿されたかどうかを追跡する必要があります。しかし、私はいつもヌルになるFacebookDialog.getNativeDialogCompletionGesture
をonActivityResult()
AndroidのFacebook SDKの共有ダイアログ:完了のジェスチャーを返すことはありません
私が使用しているコードは非常に標準的です。私は、プロセスの呼び出し結果に使用
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());
}
コード:
@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
}
}
});
}
FacebookのSDKドキュメントのそれが記載されている:
FacebookDialog
コードは、Facebookの共有]ダイアログを呼び出します。 getNativeDialogCompletionGesture - Facebookを使用してアプリケーションにログインし、完了したユーザーが本当である場合にのみ使用できます。値は「投稿」または「キャンセル」です。
しかし、私はこのフレーズが何を意味するのかを正確に理解できません。
ありがとうございました!これは問題を説明します。しかし、それはかなり面白いです。 –
なぜFacebookですか?デフォルトのFacebookアプリでシングルサインオンを使用していますか?なぜこれが必要なの? – BQuadra
基本的な推論は、ユーザがFBを介してあなたのアプリを承認していない場合、あなたのアプリはFB上で何をしているのかを知ることができません。 –