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
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!
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.
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);
}
}
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