2015-04-22 10 views
11

In breve: tutto sembra funzionare sul lato client, ma nulla è stato ricevuto per l'amico target di Facebook.Perché la mia richiesta AppInviteDialog di Facebook non viene ricevuta dall'amico target?

Questi sono i passi e screenshot di codice e:

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); 

Ciò si traduce in una finestra viene mostrato con l'anteprima di un collegamento alla installazione delle app, e la possibilità di inserire un messaggio nella parte top:

screenshot

ho quindi fare clic su Avanti, selezionare uno o più amici e fare clic sul pulsante in alto a destra Invia:

screenshot

Il risultato è un invio apparentemente di successo:

screenshot

ho attaccato un callback pure per assicurarsi che in realtà era un invio di successo:

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()); 
    } 
}); 

Questo stampa " onSuccess result = Bundle [{doneComplete = 1}] "

Risultato atteso: l'amico riceve una notifica. Risultato attuale: l'amico non riceve nulla.

Qualche informazione in più che potrebbe essere utile:

  • App è disponibile solo su Android.
  • La notifica non viene ricevuta su nessuna piattaforma, compresa l'app Android di Facebook.
  • L'URL del collegamento dell'app è stato confermato lavorando facendo clic su di esso nell'app per Android di Facebook. (Crea un popup che collega al Google Play Store)
  • Single Sign On è stato abilitato e l'utente ha effettuato l'accesso, anche se non dovrebbe essere necessario secondo la documentazione di AppInviteDialog su Facebook.
  • Provato questo con l'utente di destinazione che non ha già autorizzato l'app e anche con l'utente che ha già installato l'app. Stessi risultati
  • La versione Facebook SDK che sto usando è 4.0.0

E 'frustrante perché tutto sembra OK, e non c'è modo (che io sappia) per eseguire il debug di questo problema.

Spero che qualcuno possa aiutarmi o indicarmi la giusta direzione.

Grazie!

+0

Hai aggiunto il tuo amico come tester nel menu "[Ruoli] (https://developers.facebook.com/docs/apps/test-apps#role-management)"? – VadymVL

+0

@VadymVL sì, sono entrambi utenti di test. Ho anche provato con utenti normali. Entrambi non funzionano. – Joachim

+0

Se entrano nell'app Facebook, fai clic sul menu (pulsante in alto a destra), scorri verso il basso fino alla sezione App e vai su App Invites (potrebbe essere necessario fare clic sulla sezione See All), vedono l'invito lì ? Ci sono molti casi in cui una notifica push non può essere inviata, stiamo lavorando per documentarli. –

risposta

16

Ok, risulta che tutto funzionava bene, dopo tutto. Il mio errore è stato nel presumere di non aver installato l'app, e non avere l'app autorizzata dovrebbe generare una notifica push.

Dopo aver creato un nuovo utente di test, utilizzando un dispositivo in cui l'app non è attualmente installata e l'app NON è stata autorizzata con l'utente.

Così la chiave qui è che nessuna notifica push verrà generato se l'applicazione è installata sul dispositivo di destinazione, anche se l'utente non ha autorizzato l'applicazione in precedenza. Inoltre, apparentemente, se l'utente ha autorizzato l'app in precedenza, anche se è stato rimosso a un certo punto, non genererà nemmeno una notifica.

Quindi, se vuoi testare questo, crea un utente test completamente nuovo e accedi all'app Facebook sulla piattaforma che stai testando e assicurati che l'app non sia installata sul dispositivo.

Penso che dovrebbe ancora generare una notifica malgrado l'installazione di app, perché più utenti potrebbero utilizzare lo stesso dispositivo, ma è così che sembra essere in questo momento.

Lascerò questo qui nel caso qualcuno abbia un problema simile in futuro.

Lunga vita e prosperità!

+0

Grazie per questa informazione. Attualmente sto cercando di fare la stessa cosa. Solo una piccola domanda se non ti dispiace. L'URL del collegamento app che hai creato, deve essere valido? Voglio dire, la tua app deve implementare anche Deep Link? Perché voglio solo avere la funzione di dialogo Invita senza la funzionalità Deep Link. Quando un utente fa clic sul link, deve essere reindirizzato all'applicazione Google Play Store. Pensi che sia fattibile? Grazie. –

+1

@IonutNegru L'URL del link dell'app deve essere valido. Ho creato il mio utilizzando il loro strumento situato all'indirizzo http://goo.gl/z5QdC1. Non è necessario implementare Deep Linking. Lo sto usando esattamente come dici tu. Semplicemente come link a Google Play. – Joachim

+0

Ho creato il collegamento app con lo stesso strumento. Il collegamento dell'app che ho ottenuto è "https://fb.me/892919744099420". Non riesco ancora a fare un invito valido. Mi blocco in quel tentativo. –