web-dev-qa-db-fra.com

Facebook App Invite, inviter des amis

Je suis passé à Facebook 4.0 afin d'implémenter AppInviteDialog pour Android. J'ai suivi cette référence .

La boîte de dialogue apparaît, je peux sélectionner des amis, les inviter, je reçois l'appel onSuccess(), mais mes amis ne reçoivent pas l'invitation.

J'ai utilisé l'URL de lien ci-dessous: https://fb.me/****412097*****

Aucun aperçuImageURL bien que j'ai vu l'image de mon application dans la boîte de dialogue.

Code:

//Inside onCreate -

        callbackManager = CallbackManager.Factory.create();

        mInvititeDialog = new AppInviteDialog(this);
        mInvititeDialog.registerCallback(callbackManager,
                new FacebookCallback<AppInviteDialog.Result>() {

                    @Override
                    public void onSuccess(Result result) {
                        NetworkController.showCustomToast(
                                InviteFriendsActivity.this,
                                "Invitation Sent Successfully!");
                        finish();
                    }

                    @Override
                    public void onCancel() {
                        Log.d("Result", "Cancelled");
                        NetworkController.showCustomToast(
                                InviteFriendsActivity.this, "Cancelled");
                        finish();
                    }

                    @Override
                    public void onError(FacebookException exception) {
                        Log.d("Result", "Error " + exception.getMessage());
                        NetworkController.showCustomToast(
                                InviteFriendsActivity.this,
                                "Error while inviting friends");
                        finish();
                    }
                });


    if (AppInviteDialog.canShow()) {
            AppInviteContent content = new AppInviteContent.Builder()
                            .setApplinkUrl(appLinkUrl).build();

            AppInviteDialog.show(InviteFriendsActivity.this, content);

    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);

    }

Aucune aide des liens similaires ci-dessous (même s'ils proviennent d'ios)

Le code pour l'invitation fb ne fonctionne pas

https://stackoverflow.com/questions/27547826/facebook-app-invites-issue

Invitation à l'application Facebook non reçue

21
Atul O Holic

Ok, tout se passe bien après tout. Mon erreur était de supposer que l'application n'était pas installée et que l'application ne devait pas être autorisée devrait générer une notification Push.

Après avoir créé un nouvel utilisateur de test, en utilisant un appareil sur lequel l'application n'était pas actuellement installée et l'application n'ayant JAMAIS été autorisée avec l'utilisateur.

La clé ici est donc qu'aucune notification Push ne sera générée si l'application est installée sur l'appareil cible, même si l'utilisateur n'a pas autorisé l'application auparavant. En outre, apparemment, si l'utilisateur a déjà autorisé l'application, même s'il l'a supprimée à un moment donné, il ne générera pas non plus de notification.

Donc, si vous voulez tester cela, créez un utilisateur de test entièrement nouveau et connectez-vous sur l'application Facebook sur la plate-forme sur laquelle vous testez, et assurez-vous que l'application n'est pas installée sur l'appareil.

Je pense qu'il devrait toujours générer une notification malgré l'installation de l'application, car plusieurs utilisateurs peuvent utiliser le même appareil, mais c'est ainsi que cela semble être le cas actuellement.

Je laisse cela ici au cas où quelqu'un aurait un problème similaire à l'avenir.

Vivez longtemps et prospérez!

Source

Cela a effectivement fonctionné pour moi, mais je ne suis pas très sûr si cela couvre tous les scénarios et est la solution parfaite. Publier ici pour les autres utilisateurs et suggestions le cas échéant.

17
Atul O Holic

J'utilise le code suivant et fonctionne bien ... mais après avoir invité des amis (si vous avez partagé Android alors l'invité doit vérifier son application mobile ..) l'invitation n'est pas visible dans les navigateurs

private CallbackManager sCallbackManager;

public void openDialogInvite(final Activity activity) {
            String AppURl = "https://fb.me/421570...5709";  //Generated from //fb developers

        String previewImageUrl = "http://someurl/13_dp.png";

        sCallbackManager = CallbackManager.Factory.create();

        if (AppInviteDialog.canShow()) {
            AppInviteContent content = new AppInviteContent.Builder()
                    .setApplinkUrl(AppURl).setPreviewImageUrl(previewImageUrl)
                    .build();

            AppInviteDialog appInviteDialog = new AppInviteDialog(activity);
            appInviteDialog.registerCallback(sCallbackManager,
                    new FacebookCallback<AppInviteDialog.Result>() {
                        @Override
                        public void onSuccess(AppInviteDialog.Result result) {
                            Log.d("Invitation", "Invitation Sent Successfully");
                            finish();
                        }

                        @Override
                        public void onCancel() {
                        }

                        @Override
                        public void onError(FacebookException e) {
                            Log.d("Invitation", "Error Occured");
                        }
                    });

            appInviteDialog.show(content);
        }

    }
6
asad.qazi

Cela peut aider quelqu'un avec le même problème Veuillez utiliser ce code

private void InviteFbFriends()
{
    String appLinkUrl, previewImageUrl;
    appLinkUrl = "app url(create it from facebook)"; //your applink url
    previewImageUrl = "image url";//your image url 
    if (AppInviteDialog.canShow()) {
        AppInviteContent content = new AppInviteContent.Builder()
                .setApplinkUrl(appLinkUrl)
                .setPreviewImageUrl(previewImageUrl)
                .build();
        AppInviteDialog.show(this, content);
    }
}

Remarque. VOUS NE POUVEZ VOIR L'INVITATION QUE SUR LES APPAREILS

3
CLIFFORD P Y
  1. J'intègre également l'application api d'invitation dans mon application iOS. Je suis également confronté au même problème après avoir apporté des modifications au paramètre d'application. J'ai reçu des notifications de tous les côtés.
  2. Comme l'a dit M.Asad dans sa réponse, cela ne montrera pas sur les navigateurs qu'il dit mal. En fait, pour obtenir une invitation de tous les côtés, nous devons définir la configuration d'une demande pour tous les côtés de la manière suivante. À partir du compte développeur, sélectionnez votre application et fournissez des informations pour toutes les plates-formes pour obtenir des invitations sur tous les sites ios, Android, Facebook et Web. Si nous allons ajouter des paramètres pour une seule plate-forme, par exemple, fournir des informations pour seulement Android apparaîtra sur Android ne sont pas sur d'autres plates-formes).
1
abrar ul haq

Dans mon cas, je n'ai pas pu recevoir l'invitation et les voir sur l'application FB car l'application FB était en mode développement (pas en direct).

enter image description here

0
Vasily Kabunov