AppInviteDialog non funziona in Android SDK 4.0 di Facebook

Dopo lunghe ricerche e cercando di risolvere questo problema da solo, non ho trovato alcun risultato lavorativo accettabile.

A seguito di questa documentazione cerco di invitare amici alla mia app. Tutti gli elementi, ad esempio i pulsanti di condivisione, funzionano correttamente.

  • ViewPager con frammenti - onPause (), onResume ()?
  • Errore durante l'inserimento di un filatore all'interno di un gruppo di attività
  • Riferimento android.R.id.home sui dispositivi pre 3.0
  • Come recuperare l'arrays 2D da risorsa string xml per Android?
  • La scheda Layout grafico non viene visualizzata per alcuni file di layout in Eclipse
  • Come get un display / context EGL a uno specifico GLSurfaceView
  • L'unico problema è con la window di dialogo "Invita a app". Dopo aver selezionato un amico, la window di dialogo mostra l'icona rossa di avviso e il button "invia" si trasforma in button "riprova".

    Ho provato a risolvere questo problema in molti modi: configurare la mia applicazione nella pagina FB dev (come modificare la categoria di app: gioco, viaggio .etc), aggiungendo nuove autorizzazioni per la condivisione (ma non ho trovato che è richiesto l'invito). GiochiRequests (ma la mia applicazione non è un gioco, è applicazione android + canvas). Quindi sono tornato nuovamente a AppInviteDialog.

    Inoltre, ho cercato di utilizzare l'istanza proprio, con gli ascoltatori, anziché la class statica.

    inviteDialog = new AppInviteDialog(this); inviteDialog.registerCallback(callbackManager, new FacebookCallback<Result>() { @Override public void onSuccess(Result result) { Log.i(TAG, "MainACtivity, InviteCallback - SUCCESS!"); } @Override public void onCancel() { Log.i(TAG, "MainACtivity, InviteCallback - CANCEL!"); } @Override public void onError(FacebookException error) { Log.e(TAG, "MainACtivity, InviteCallback - ERROR! " + error.getMessage()); } }); 

    E chiamandolo, come in tutorial :

      if(AppInviteDialog.canShow()) { AppInviteContent content = new AppInviteContent.Builder() .setApplinkUrl(appUrl) .setPreviewImageUrl(imagePreviewUrl) .build(); //AppInviteDialog.show(this, content); //static inviteDialog.show(content); //my instance } 

    Ma tutto quello che ottengo è:

    immettere qui la descrizione dell'immagine

    Edit:

    Dopo aver creato un collegamento alla mia applicazione utilizzando AppLinks e utilizzandolo nell'appInViteDialog, ora tutti funzionano bene. E 'un po' confuso, che nella documentazione non chiaramente descritta, che tipo di collegamento deve utilizzare: "link AppLinks" o semplicemente "link app (link alla tua applicazione fb)".

  • Qual è il modo migliore per get una durata di file audio in Android?
  • Android: è ansible utilizzare MediaCodec su android 4.0.4 (livello api 15)?
  • ProgressBar durante il caricamento di ListView (utilizzando AsyncTask)
  • Come fermare il servizio da solo?
  • Come posso accedere al suono di beep predefinito di Android?
  • Android SyncAdapter bloccato nel ciclo di sincronizzazione infinita
  • 3 Solutions collect form web for “AppInviteDialog non funziona in Android SDK 4.0 di Facebook”

    C'è un messaggio di errore?

    Ottengo questo se non uso un AppLink.

    https://developers.facebook.com/quickstarts/1374389166202673/?platform=app-links-host

    Ho un'altra domanda relativa a questo.

    Se non utilizzo l'applink hosting, ma presento applink sul mio sito. Non riesce ad invitare e mostrare lo stesso messaggio fallito.

    Ecco il mio link:

    http://cn.cmcm.com/activity/2015/phonescanning/en.html

    Più interessante, questo invito sarà successo accidentalmente.

    Chiunque ha le stesse situazioni?

    Stavo avendo lo stesso problema e la mia causa non stava chiamando onActivityResult sul facebook CallbackManager. Così ho risolto:

     @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); facebookCallbackManager = CallbackManager.Factory.create(); // ... } 

    Ecco allora where stavo avendo l'errore:

     @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); // This is the line I was lacking facebookCallbackManager.onActivityResult(requestCode, resultCode, data); } 

    Dopo l'aggiunta di onActivityResult, riceve le mie chiamate:

     AppInviteDialog appInviteDialog = new AppInviteDialog(activity); FacebookCallback callback = new FacebookCallback<AppInviteDialog.Result>() { @Override public void onSuccess(AppInviteDialog.Result result) { } @Override public void onCancel() { } @Override public void onError(FacebookException error) { } }; appInviteDialog.registerCallback(facebookCallbackManager, callback); appInviteDialog.show(content); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.