2015-04-22 4 views
11

Kurz gesagt: Alles scheint auf der Client-Seite zu funktionieren, aber nichts für den Facebook-Ziel-Freund.Warum wird meine Facebook AppInviteDialog-Anfrage nicht vom Ziel-Freund empfangen?

Dies sind die detaillierten Schritte mit Code und Screenshots:

AppInviteContent content = new AppInviteConent.Builder() 
    .setApplinkUrl("App link url created via the Facebook AppLink creator tool") 
    .setPreviewImageUrl("http://www.redacted.com/previewImage.png") 
    .build(); 

appInviteDialog.show(this, content); 

Dies führt zu einem Dialog mit einer Vorschau auf einen Link, um die Installation der App angezeigt werden, und die Möglichkeit, eine Nachricht an die Eingabe top:

screenshot

ich dann nächstes klicken, wählen Sie einen oder mehrere Freunde und klicken Sie oben rechts senden-Taste:

screenshot

Das Ergebnis ist ein scheinbar erfolgreich senden:

screenshot

ich auch einen Rückruf angebracht, um sicherzustellen, war es eigentlich ein erfolgreicher senden:

appInviteDialog.registerCallback(facebookCallbackManager, new FacebookCallback<AppInviteDialog.Result>() { 
    @Override 
    public void onSuccess(AppInviteDialog.Result result) { 
    Log.d(TAG,"onSuccess result = "+ result.getData().toString()); 
    } 

    @Override 
    public void onCancel() {} 

    @Override 
    public void onError(FacebookException e) { 
     Log.d(TAG,"onError message = "+ e.getMessage()); 
    } 
}); 

Dieser druckt " onSuccess Ergebnis = Bündel [{didComplete = 1}] "

Erwartetes Ergebnis: Freund erhält eine Benachrichtigung. Tatsächliches Ergebnis: Freund erhält nichts.

Einige weitere Informationen, die nützlich sein könnten:

  • App ist nur auf Android verfügbar.
  • Benachrichtigung wird auf keiner Plattform einschließlich Facebook Android App erhalten.
  • Die App Link URL wurde bestätigt, indem Sie in der Facebook Android App auf sie klicken. (Es erstellt ein Popup, das mit dem Google Play Store verknüpft)
  • Single Sign On wurde aktiviert und der Benutzer ist angemeldet, obwohl dies laut der AppInviteDialog-Dokumentation auf Facebook nicht erforderlich sein sollte.
  • Dies wurde mit dem Zielbenutzer versucht, der die App noch nicht autorisiert hatte, und auch mit dem Benutzer, der die App bereits installiert hatte. Gleiche Ergebnisse.
  • Die Facebook-SDK-Version ich verwende ist 4.0.0

Es ist frustrierend, weil alles in Ordnung scheint, und es gibt keine Möglichkeit (die ich kenne) Um dieses Problem zu debuggen.

Ich hoffe, dass jemand mir helfen oder mir in die richtige Richtung zeigen kann.

Vielen Dank!

+0

Haben Sie Ihren Freund als Tester im Menü "[Rollen] (https://developers.facebook.com/docs/apps/test-apps#role-management)" hinzugefügt? – VadymVL

+0

@VadymVL ja, sie sind beide Testbenutzer. Ich habe es auch mit normalen Nutzern versucht. Beides funktioniert nicht. – Joachim

+0

Wenn sie in die Facebook-App gehen, klicken Sie auf das Menü (oben rechts), scrollen Sie nach unten zum App-Bereich und gehen Sie zu App-Einladungen (Sie müssen möglicherweise auf den Alle anzeigen-Bereich klicken), sehen sie dort die Einladung ? Es gibt viele Fälle, in denen eine Push-Benachrichtigung nicht gesendet werden kann, wir arbeiten daran, sie zu dokumentieren. –

Antwort

16

Ok, stellt sich heraus, alles funktionierte schließlich gut. Mein Fehler bestand darin, anzunehmen, dass die App nicht installiert wurde, und dass die App nicht autorisiert werden sollte, sollte eine Push-Benachrichtigung generieren.

Nach dem Erstellen eines neuen Testbenutzers ein Gerät verwenden, auf dem die App derzeit nicht installiert war und die App NIEMALS mit dem Benutzer autorisiert wurde.

Also hier der Schlüssel ist, dass keine Push-Benachrichtigung erzeugt wird, wenn die App auf dem Zielgerät installiert ist, selbst wenn der Benutzer die App nicht vorher genehmigt hat. Auch, scheinbar, , wenn der Benutzer die App zuvor autorisiert hat, auch wenn es irgendwann entfernt wurde, wird es auch keine Benachrichtigung generieren.

Wenn Sie dies testen möchten, erstellen Sie einen völlig neuen Testbenutzer und melden Sie sich in der Facebook App auf der Plattform an, auf der Sie testen, und stellen Sie sicher, dass die App nicht auf dem Gerät installiert ist.

Ich denke, es sollte immer noch eine Benachrichtigung generieren, obwohl die App installiert wird, weil mehrere Benutzer das gleiche Gerät verwenden, aber so scheint es jetzt zu sein.

Ich lasse das hier für den Fall, dass jemand ein ähnliches Problem in der Zukunft hat.

Lebe lang und gedeihen!

+0

Vielen Dank für diese Information. Ich versuche gerade, das Gleiche zu tun. Nur eine kleine Frage, wenn es Ihnen nichts ausmacht. Die App Link-URL, die Sie erstellt haben, muss eine gültige sein? Ich meine, deine App muss Deep Link auch implementieren? Weil ich nur die Invite Dialog Funktion ohne die Deep Link Funktionalität haben möchte. Wenn ein Nutzer auf den Link klickt, sollte er zum Google Play Store weitergeleitet werden. Denkst du, das ist machbar? Danke. –

+1

@IonutNegru Die Link-URL der App muss gültig sein. Ich habe mine mit ihrem Tool unter http://goo.gl/z5QdC1 erstellt. Sie müssen Deep Linking nicht implementieren. Ich benutze es genau so, wie du es erwähnst. Einfach als Link zu Google Play. – Joachim

+0

Ich habe die App Link mit dem gleichen Werkzeug erstellt. Der App Link, den ich bekomme, ist "https://fb.me/892919744099420". Ich kann immer noch keine gültige Einladung abgeben. Ich bleibe in dieser Wiederholung stecken. –

Verwandte Themen