J'essaie d'obtenir le nom et les identifiants de mon ami avec Graph API v2.0, mais les données retournent vides:
{
"data": [
]
}
Lorsque j'utilisais la v1.0, tout allait bien avec la demande suivante:
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
NSArray* friends = [result objectForKey:@"data"];
NSLog(@"Found: %i friends", friends.count);
for (NSDictionary<FBGraphUser>* friend in friends) {
NSLog(@"I have a friend named %@ with id %@", friend.name, friend.id);
}
}];
Mais maintenant, je ne peux plus me faire d'amis!
Réponses:
Dans la version 2.0 de l'API Graph, l'appel
/me/friends
renvoie les amis de la personne qui utilisent également l'application.De plus, dans la version 2.0, vous devez demander l'
user_friends
autorisation à chaque utilisateur.user_friends
n'est plus inclus par défaut dans chaque connexion. Chaque utilisateur doit accorder l'user_friends
autorisation pour apparaître dans la réponse à/me/friends
. Consultez le guide de mise à niveau de Facebook pour des informations plus détaillées ou consultez le résumé ci-dessous.Si vous souhaitez accéder à une liste d'amis qui n'utilisent pas d'application, il existe deux options:
Si vous souhaitez laisser vos gens taguer leurs amis dans des histoires qu'ils publient sur Facebook à l'aide de votre application, vous pouvez utiliser l'
/me/taggable_friends
API. L'utilisation de ce point de terminaison nécessite un examen par Facebook et ne doit être utilisée que dans le cas où vous affichez une liste d'amis afin de permettre à l'utilisateur de les étiqueter dans un message.Si votre application est un jeu ET que votre jeu prend en charge Facebook Canvas , vous pouvez utiliser le
/me/invitable_friends
point de terminaison pour afficher une boîte de dialogue d'invitation personnalisée , puis transmettre les jetons renvoyés par cette API à la boîte de dialogue des demandes standard.Dans d'autres cas, les applications ne peuvent plus récupérer la liste complète des amis d'un utilisateur (uniquement les amis qui ont spécifiquement autorisé votre application en utilisant l'
user_friends
autorisation). Cela a été confirmé par Facebook comme `` par conception ''.Pour les applications qui souhaitent autoriser les utilisateurs à inviter des amis à utiliser une application, vous pouvez toujours utiliser la boîte de dialogue Envoyer sur le Web ou la nouvelle boîte de dialogue Message sur iOS et Android .
MISE À JOUR: Facebook a publié une FAQ sur ces changements ici: https://developers.facebook.com/docs/apps/faq qui explique toutes les options disponibles pour les développeurs afin d'inviter des amis, etc.
la source
taggable_friends
dans les éléments à soumettre pour examen.taggable_friends
ne renvoie désormais rien. En outre, un examen de connexion est requis avant que vous puissiez obtenir uneuser_friends
autorisation.Bien que Simon Cross réponse de soit acceptée et correcte, j'ai pensé que je la renforcerais un peu avec un exemple (Android) de ce qui doit être fait. Je vais le garder aussi général que possible et me concentrer uniquement sur la question. Personnellement, j'ai fini par stocker des choses dans une base de données, donc le chargement était fluide, mais cela nécessite un CursorAdapter et ContentProvider qui est un peu hors de portée ici.
Je suis venu ici moi-même et j'ai pensé, maintenant quoi?!
Le problème
Tout comme user3594351 , je remarquais que les données des amis étaient vides. J'ai découvert cela en utilisant le FriendPickerFragment. Ce qui a fonctionné il y a trois mois ne fonctionne plus. Même les exemples de Facebook ont éclaté. Mon problème était donc «Comment créer manuellement FriendPickerFragment?
Ce qui n'a pas fonctionné
L'option n ° 1 de Simon Cross n'était pas assez forte pour inviter des amis à l'application. Simon Cross a également recommandé la boîte de dialogue Demandes, mais cela ne permettrait que cinq demandes à la fois. La boîte de dialogue des demandes a également montré les mêmes amis lors d'une session de connexion Facebook donnée. Pas utile.
Ce qui a fonctionné (résumé)
Option # 2 avec un travail acharné. Vous devez vous assurer que vous respectez les nouvelles règles de Facebook: 1.) Vous êtes un jeu 2.) Vous avez une application Canvas (présence Web) 3.) Votre application est enregistrée sur Facebook. Tout est fait sur le site Web des développeurs Facebook sous Paramètres .
Pour émuler le sélecteur d'amis à la main dans mon application, j'ai fait ce qui suit:
Détails
The AsynchTask
La classe FacebookFriend que j'ai créée
la source
Facebook a révisé ses politiques maintenant. De toute façon, vous ne pouvez pas obtenir la liste d'amis complète si votre application n'a pas d'implémentation Canvas et si votre application n'est pas un jeu. Bien sûr, il y a aussi taggable_friends, mais celui-ci est uniquement pour le marquage.
Vous pourrez extraire la liste des amis qui ont autorisé l'application uniquement.
Les applications qui utilisent Graph API 1.0 fonctionneront jusqu'au 30 avril 2015 et après cela, elles seront obsolètes.
Voir ce qui suit pour obtenir plus de détails à ce sujet:
Amis utilisateurs
FAQ sur le développement d'applications Facebook
la source
Dans Swift 4.2 et Xcode 10.1:
Si vous souhaitez obtenir la liste d'amis de Facebook, vous devez soumettre votre application pour examen sur Facebook. Voir certaines des autorisations de connexion:
Autorisations de connexion
Voici les deux étapes:
1) Le statut de votre application doit d'abord être en direct
2) Obtenez les autorisations requises via Facebook.
1) Activez l'état de notre application en direct:
Accédez à la page des applications et sélectionnez votre application
https://developers.facebook.com/apps/
Sélectionnez l'état en haut à droite du tableau de bord .
Soumettre l' URL de la politique de confidentialité
Sélectionnez une catégorie
Maintenant, notre application est en statut Live .
Une étape est terminée.
2) Soumettez notre application pour examen:
Envoyez d'abord les demandes requises.
Exemple: user_friends, user_videos, user_posts, etc.
Ensuite, accédez à la page Demande actuelle
Exemple: user_events
Soumettre tous les détails
Comme cette soumission pour toutes les demandes (user_friends, user_events, user_videos, user_posts, etc.).
Enfin, soumettez votre application pour examen.
Si votre avis est accepté du côté de Facebook, vous pouvez désormais lire les contacts, etc.
la source
user_friends
autorisation est très limitée. D'après la documentation de Facebook (avril 2019): [Cela uniquement] accorde à une application la permission d'accéder à une liste d'amis qui utilisent également ladite application. Cette autorisation est limitée à un ensemble limité de partenaires et son utilisation nécessite l'approbation préalable de Facebook. Pour qu'une personne apparaisse dans la liste d'amis d'une autre personne, les deux personnes doivent avoir partagé leur liste d'amis avec l'application et ne pas avoir désactivé cette autorisation lors de la connexion.Comme Simon l'a mentionné, cela n'est pas possible dans la nouvelle API Facebook. Techniquement parlant, vous pouvez le faire via l'automatisation du navigateur.
Exemple d'implémentation utilisant WatiN :
Prototype avec implémentation de cette approche (en utilisant C # / WatiN) voir https://github.com/svejdo1/ShadowApi . Il permet également la mise à jour dynamique du connecteur Facebook qui récupère une liste de vos contacts.
la source
Essayez d'
/me/taggable_friends?limit=5000
utiliser votre code JavaScriptOu
essayez l' API Graph :
https://graph.facebook.com/v2.3/user_id_here/taggable_friends?access_token=
la source
Dans Facebook SDK Graph API v2.0 ou supérieure, vous devez demander l' autorisation user_friends à chaque utilisateur au moment de la connexion Facebook depuis user_friends n'est plus inclus par défaut dans chaque connexion; nous devons ajouter cela.
Chaque utilisateur doit accorder l' autorisation user_friends afin d'apparaître dans la réponse à / me / friends .
Ainsi, au moment de la connexion Facebook, il vous invite avec un écran qui contient toutes les autorisations:
Si l'utilisateur appuie sur le bouton Continuer , les autorisations seront définies. Lorsque vous accédez à la liste d'amis à l'aide de l'API Graph, vos amis qui se sont connectés à l'application comme ci-dessus seront répertoriés
La sortie contiendra les utilisateurs qui ont accordé l' autorisation user_friends au moment de la connexion à votre application via Facebook.
la source