Ich versuche, meinen Freundesnamen und meine IDs mit der Graph API v2.0 abzurufen, aber die Daten werden leer zurückgegeben:
{
"data": [
]
}
Als ich v1.0 verwendete, war mit der folgenden Anfrage alles in Ordnung:
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);
}
}];
Aber jetzt kann ich keine Freunde finden!
Antworten:
In Version 2.0 der Graph-API gibt der Aufruf
/me/friends
die Freunde der Person zurück, die auch die App verwenden.Darüber hinaus müssen Sie in Version 2.0 die
user_friends
Berechtigung von jedem Benutzer anfordern .user_friends
ist nicht mehr standardmäßig in jedem Login enthalten. Jeder Benutzer muss dieuser_friends
Berechtigung erteilen, um in der Antwort auf zu erscheinen/me/friends
. Weitere Informationen finden Sie im Facebook-Upgrade-Handbuch oder in der folgenden Zusammenfassung.Wenn Sie auf eine Liste von Freunden zugreifen möchten, die keine App verwenden, gibt es zwei Möglichkeiten:
Wenn Sie möchten, dass Ihre Leute ihre Freunde in Geschichten markieren , die sie mithilfe Ihrer App auf Facebook veröffentlichen, können Sie die
/me/taggable_friends
API verwenden. Die Verwendung dieses Endpunkts erfordert eine Überprüfung durch Facebook und sollte nur für den Fall verwendet werden, dass Sie eine Liste von Freunden rendern, damit der Benutzer sie in einem Beitrag markieren kann.Wenn Ihre App ein Spiel ist UND Ihr Spiel Facebook Canvas unterstützt , können Sie den
/me/invitable_friends
Endpunkt verwenden, um einen benutzerdefinierten Einladungsdialog zu rendern, und die von dieser API zurückgegebenen Token an den Standard-Anforderungsdialog übergeben.In anderen Fällen können Apps nicht mehr die vollständige Liste der Freunde eines Benutzers abrufen (nur diejenigen Freunde, die Ihre App mit dieser
user_friends
Berechtigung speziell autorisiert haben ). Dies wurde von Facebook als "by design" bestätigt.Für Apps, mit denen Benutzer Freunde zur Verwendung einer App einladen können, können Sie weiterhin den Dialog "Senden" im Web oder den neuen Dialog "Nachricht" unter iOS und Android verwenden .
UPDATE: Facebook hat hier eine FAQ zu diesen Änderungen veröffentlicht: https://developers.facebook.com/docs/apps/faq, in der alle Optionen erläutert werden, die Entwicklern zur Verfügung stehen, um Freunde usw. einzuladen.
quelle
taggable_friends
in den Elementen zur Überprüfung eingereichten Informationen können nicht angezeigt werden.taggable_friends
jetzt nichts zurück. Außerdem ist eine Überprüfung der Anmeldung erforderlich, bevor Ihnen die Berechtigunguser_friends
erteilt werden kann.Obwohl die Antwort von Simon Cross akzeptiert und richtig ist, dachte ich, ich würde sie mit einem Beispiel (Android) ein wenig aufpeppen, was getan werden muss. Ich werde es so allgemein wie möglich halten und mich nur auf die Frage konzentrieren. Persönlich habe ich Dinge in einer Datenbank gespeichert, damit das Laden reibungslos verlief, aber dafür sind ein CursorAdapter und ein ContentProvider erforderlich, die hier etwas außerhalb des Geltungsbereichs liegen.
Ich bin selbst hierher gekommen und habe dann gedacht, was nun?!
Die Angelegenheit
Genau wie bei user3594351 bemerkte ich, dass die Freundesdaten leer waren. Ich habe dies mithilfe des FriendPickerFragment herausgefunden. Was vor drei Monaten funktioniert hat, funktioniert nicht mehr. Sogar Facebooks Beispiele brachen. Mein Problem war also: "Wie erstelle ich FriendPickerFragment von Hand?"
Was hat nicht funktioniert
Option 1 von Simon Cross war nicht stark genug, um Freunde zur App einzuladen. Simon Cross empfahl auch den Anforderungsdialog, der jedoch nur fünf Anfragen gleichzeitig zulässt. Der Anforderungsdialog zeigte auch die gleichen Freunde während einer bestimmten Facebook-Anmeldesitzung. Nicht nützlich.
Was hat funktioniert (Zusammenfassung)
Option 2 mit harter Arbeit. Sie müssen sicherstellen, dass Sie die neuen Regeln von Facebook erfüllen: 1.) Sie sind ein Spiel 2.) Sie haben eine Canvas-App (Webpräsenz) 3.) Ihre App ist bei Facebook registriert. Dies geschieht alles auf der Facebook-Entwickler-Website unter Einstellungen .
Um den Freund-Picker von Hand in meiner App zu emulieren, habe ich Folgendes getan:
Einzelheiten
Die AsynchTask
Die FacebookFriend-Klasse, die ich erstellt habe
quelle
Facebook hat seine Richtlinien jetzt überarbeitet. Sie können ohnehin nicht die gesamte Freundesliste abrufen, wenn Ihre App keine Canvas-Implementierung hat und wenn Ihre App kein Spiel ist. Natürlich gibt es auch taggable_friends, aber dieser dient nur zum Markieren.
Sie können die Liste der Freunde abrufen, die nur die App autorisiert haben.
Die Apps, die Graph API 1.0 verwenden, funktionieren bis zum 30. April 2015 und sind danach veraltet.
Weitere Informationen hierzu finden Sie im Folgenden:
Benutzerfreunde
FAQ zur Entwicklung von Facebook-Anwendungen
quelle
In Swift 4.2 und Xcode 10.1:
Wenn Sie die Freundesliste von Facebook erhalten möchten, müssen Sie Ihre App zur Überprüfung in Facebook einreichen. Einige der Anmeldeberechtigungen anzeigen:
Anmeldeberechtigungen
Hier sind die zwei Schritte:
1) Zuerst muss Ihr App-Status in Live sein
2) Holen Sie sich die erforderlichen Berechtigungen von Facebook.
1) Aktivieren Sie unseren App-Status live:
Gehen Sie zur Apps-Seite und wählen Sie Ihre App aus
https://developers.facebook.com/apps/
Wählen Sie oben rechts im Dashboard den Status aus .
Senden Sie die URL der Datenschutzrichtlinie
Kategorie auswählen
Jetzt befindet sich unsere App im Live- Status.
Ein Schritt ist abgeschlossen.
2) Senden Sie unsere App zur Überprüfung:
Senden Sie zuerst die erforderlichen Anfragen.
Beispiel: user_friends, user_videos, user_posts usw.
Wechseln Sie anschließend zur Seite Aktuelle Anforderung
Beispiel: user_events
Senden Sie alle Details
So senden Sie für alle Anfragen (user_friends, user_events, user_videos, user_posts, etc.).
Senden Sie schließlich Ihre App zur Überprüfung.
Wenn Ihre Bewertung von Facebook akzeptiert wird, können Sie jetzt Kontakte usw. lesen.
quelle
user_friends
Erlaubnis ist sehr begrenzt. Aus der Dokumentation von Facebook (April 2019): [Nur dies] gewährt einer App die Berechtigung, auf eine Liste von Freunden zuzugreifen, die diese App ebenfalls verwenden. Diese Erlaubnis ist auf eine begrenzte Anzahl von Partnern beschränkt und die Nutzung bedarf der vorherigen Genehmigung durch Facebook. Damit eine Person in der Freundesliste einer anderen Person angezeigt wird, müssen beide Personen ihre Freundesliste für die App freigegeben haben und dürfen diese Berechtigung beim Anmelden nicht deaktivieren.Wie Simon erwähnte, ist dies in der neuen Facebook-API nicht möglich. Technisch gesehen können Sie dies über die Browser-Automatisierung tun.
Beispielimplementierung mit WatiN :
Prototyp mit Implementierung dieses Ansatzes (unter Verwendung von C # / WatiN) siehe https://github.com/svejdo1/ShadowApi . Es ermöglicht auch die dynamische Aktualisierung des Facebook-Connectors, der eine Liste Ihrer Kontakte abruft.
quelle
Versuchen Sie es
/me/taggable_friends?limit=5000
mit Ihrem JavaScript-CodeOder
Probieren Sie die Graph API aus :
https://graph.facebook.com/v2.3/user_id_here/taggable_friends?access_token=
quelle
Im v2.0 Facebook Graph API SDK oder höher, müssen Sie die Anfrage user_friends Erlaubnis von jedem Benutzer in der Zeit der Facebook - Login seit user_friends wird nicht mehr standardmäßig in jedem Login enthalten ist ; das müssen wir hinzufügen.
Jeder Benutzer muss die Berechtigung user_friends erteilen, um in der Antwort an / me / friends angezeigt zu werden .
Zum Zeitpunkt der Facebook-Anmeldung wird ein Bildschirm angezeigt, der alle Berechtigungen enthält:
Wenn der Benutzer die Schaltfläche Weiter drückt, werden die Berechtigungen festgelegt. Wenn Sie über die Graph-API auf die Freundesliste zugreifen, werden Ihre Freunde aufgelistet, die sich wie oben bei der Anwendung angemeldet haben
Die Ausgabe enthält die Benutzer, die zum Zeitpunkt der Anmeldung bei Ihrer Anwendung über Facebook die Berechtigung user_friends erteilt haben.
quelle