Ich benutze facebook android sdk v3.5 in meiner app für messsage teilen. Für Statistiken muss ich verfolgen, ob die Nachricht erfolgreich gebucht wurde oder nicht. Allerdings bekomme ich immer Null, indem ich FacebookDialog.getNativeDialogCompletionGesture
in onActivityResult()
Android Facebook SDK Freigeben Dialog: nie zurück Completion Geste
bekomme. Der Code, den ich benutze, ist sehr Standard.
-Code Facebook teilen Dialog aufzurufen:
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());
}
Code I zu Prozessaufruf Ergebnis verwenden:
@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
}
}
});
}
In Facebook sdk Dokumentation, dass heißt:
FacebookDialog. getNativeDialogCompletionGesture - Nur verfügbar, wenn der Nutzer sich über Facebook bei Ihrer App angemeldet hat und den Vorgang abgeschlossen hat. Wert ist entweder "Post" oder "Abbrechen".
Aber ich kann nicht verstehen, was genau sie mit dieser Phrase meinen.
Vielen Dank! Dies erklärt das Problem. Aber es ist ziemlich komisch von Facebook Seite. –
Warum Facebook ??? Verwenden wir Single Sign On über die Standard-Facebook-App? Warum brauchen wir das? – BQuadra
Die Grundüberlegung liegt darin, dass, wenn der Benutzer Ihre App nicht per FB autorisiert hat, Ihre App nicht wissen kann, was der Benutzer auf dem FB macht. –