Heim >Backend-Entwicklung >Python-Tutorial >2 coole Dinge, die Sie mit der Facebook -Graph -API machen können
Im Dezember 2011 hat Facebook seine REST -API offiziell veraltet und die Graph -API für die öffentliche Verwendung gestartet. Seitdem wurden alle neuen Funktionen zur Graph -API hinzugefügt, und Facebook hat es den Benutzern ermöglicht, viele neue Dinge auszuführen, von denen einige heute diskutieren werden. In diesem Beitrag werden wir viele Anfragen an die Graph -API stellen, JSON -Antworten erhalten und sie damit manipulieren, um unsere gewünschten Ergebnisse zu erzielen.
A Token ist einer Facebook -App zugeordnet, um die Berechtigungen zu verarbeiten, die der Benutzer der App erteilt hat. Dies definiert die Ressourcen, die über das Zugangstoken zugänglich sind. Somit bietet ein Token einen vorübergehenden und sicheren Zugriff auf Facebook. Sie können einen Zugriffstoken aus dem Graph Explorer erhalten. Ein Token kann eine Exipry-Zeit haben oder nicht, je nachdem, ob es sich um kurzfristige oder langfristige Token handelt. Nach Ablauf eines kurzfristigen Tokens müssen Sie den Benutzer erneut authentifizieren und ein neues Token erhalten.
Wettbewerbe über Facebook -Seiten
Der übliche Wettbewerb beinhaltet die Veröffentlichung eines Fotos oder eines Absatzes auf der Seite über eine Erfahrung. Der Wettbewerb wird anhand der Anzahl der „Likes“ auf dem Beitrag oder dem Foto beurteilt. Es gibt auch eine zusätzliche Bedingung für die Teilnahme am Wettbewerb. Damit ein "Like" gültig ist, muss der Benutzer auch die Seite mögen. Facebook verfügt über keine integrierte Funktion, die Ihnen sagt, wie viele Likes in Ihrem Beitrag und Ihrer Seite gemeinsam sind. Das erschwert die Beurteilung der Wettbewerbe.
Nichtprogrammierer würden das Gefühl haben, dass der einzige Weg, den Wettbewerb zu beurteilen, darin besteht, die Anzahl der Likes manuell zu überprüfen. Glücklicherweise hilft uns die Graph -API, diese Aktion ohne viel Ärger auszuführen.
Obwohl ich die Aktion über Python ausführen werde, bleibt der Prozess für andere Sprachen gleich. Der wichtige Teil ist die Ziel -URLs, an die wir die Anfragen senden, und die Daten, die wir vom empfangenen JSON erhalten.
Eine konzeptionell einfache Möglichkeit, dies zu tun, wäre, die Liste der Likes in einem Beitrag und die Liste der Likes auf einer Seite zu erhalten und sie dann zu vergleichen. Es gibt jedoch keine Funktionalität in Facebook, die ab sofort die Liste der Likes auf einer Seite erhält. Wir werden den umgekehrten Vorgang verwenden, um zu überprüfen, ob jeder auch in einem Beitrag die Seite mag.
Der folgende Anruf überprüft, ob ein Benutzer eine Seite mag oder nicht. Die detaillierte Dokumentation ist hier verfügbar.
GET <span>/{user-id}/likes/{page-id}</span>
Wenn der Benutzer die Seite mag, enthält die JSON -Antwort Daten zur Seite, aber wenn der Benutzer die Seite nicht mag, wird ein leerer Daten empfangen. Wir verwenden die folgende Funktion, um festzustellen, ob ein Benutzer eine Seite mag oder nicht.
<span>def user_likes_page(user_id, page_id): </span> <span>""" </span><span> Returns whether a user likes a page </span><span> """ </span> url <span>= 'https://graph.facebook.com/%d/likes/%d/' % (user_id, page_id) </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get(url, params = parameters) </span> result <span>= json.loads(r.text) </span> <span>if result['data']: </span> <span>return True </span> <span>else: </span> <span>return False</span>
Der nächste Schritt besteht darin, die Liste der Likes für einen bestimmten Beitrag zu erhalten und herauszufinden, ob die Benutzer auch die Seite mögen. Der folgende Anruf gibt uns die Liste der Likes für einen Beitrag, vorausgesetzt, wir haben einen ordnungsgemäßen Zugriff.
GET <span>/{post-id}/likes/</span>
Kombinieren Sie die beiden Ideen, wir stellen die folgende Funktion, um zu überprüfen, wie viele Likes in einem Beitrag auch der Seite gemeinsam sind.
<span>def get_common_likes(post_id, page_id): </span> <span>""" </span><span> Returns the number of likes common to a post and the page </span><span> """ </span> count_likes <span>= 0 </span> url <span>= 'https://graph.facebook.com/%d/likes/' % post_id </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get(url, params = parameters) </span> result <span>= json.loads(r.text) </span> <span>for like in result['data']: </span> <span>if user_likes_page(int(like['id']), page_id): </span> count_likes <span>+= 1 </span> <span>print 1 </span> <span>return count_likes</span>
Zu Ihrem Geburtstag bin ich sicher, dass Sie Hunderte (wenn nicht Tausende) Beiträge erhalten. Auf jeden von ihnen zu antworten ist langweilig! Viele Leute haben einen Status eröffnet, der sich für alle für ihre Wünsche bedankt, während andere es vorziehen, sich persönlich zu bedanken. Lassen Sie uns sehen, wie wir die persönliche Option auswählen und in kurzer Zeit tun können.
Der Anruf, um den Feed für Benutzer oder Seiten zu erhalten, ist wie folgt.
GET <span>/{user-id}/feed</span>
Falls Sie die Beiträge auf Ihrer Zeitleiste erhalten möchten, können Sie {user-id} durch "Ich" ersetzen, was den Prozess erleichtert. Um Hunderte und Tausende von Beiträgen zu manipulieren, könnten Sie sie nicht auf einer einzigen Seite bekommen. Sie müssten einen Schritt vorausgehen und die nächste URL in der JSON -Antwort überprüfen.
Die Funktion, die alle Beiträge auf Ihrer Zeitleiste erhält, lautet wie folgt.
<span>def get_posts(): </span> <span>""" </span><span> Returns the list of posts on my timeline </span><span> """ </span> parameters <span>= {'access_token': TOKEN} </span> r <span>= requests.get('https://graph.facebook.com/me/feed', params=parameters) </span> result <span>= json.loads(r.text) </span> <span>return result['data']</span>
Der nächste Schritt besteht darin, Kommentare zu Ihrer Zeitleiste zu veröffentlichen. Der Anruf, der zur Ausführung dieser Aktion verwendet wird, ist wie folgt.
POST <span>/{object-id}/comments</span>
Der Kommentar sollte in der obigen Postanforderung als Nachricht gesendet werden. Die Funktion, mit der wir Beiträge kommentieren, lautet wie folgt.
<span>def comment_on_posts(posts): </span> <span>"""Comments on all posts""" </span> <span>for post in posts: </span> url <span>= 'https://graph.facebook.com/%s/comments' % post['post_id'] </span> message <span>= 'Commenting through the Graph API' </span> parameters <span>= {'access_token': TOKEN, 'message': message} </span> s <span>= requests.post(url, data = parameters)</span>
Die Skripte, die ich für beide verwendet habe, finden Sie auf GitHub. Außerdem können Sie noch einen Schritt weiter gehen, indem Sie gleichzeitig mehrere API -Anfragen stellen.
Akshit Khurana über Quora diskutiert einen anderen Ansatz dazu durch die Verwendung von Facebook -Abfragesprache (FQL). FQL ist eine SQL-ähnliche Sprache, mit der Sie die Daten, die Sie über die Graph-API erhalten, abfragen können. Es gibt eine Liste von Tabellen mit jeweils eine eigene Liste von Spalten, die abgefragt werden können, wodurch Sie Ihre Daten filtern.
Facebook hat seit dem Start der Graph -API hart gearbeitet, und es werden häufig neue Funktionen hinzugefügt. Wenn Sie planen, an mobilen oder Webanwendungen zu arbeiten, die mit Facebook verknüpft sind, ist die Verwendung der Graph -API ein Muss. Facebook behält auch eine umfangreiche Dokumentation bei, die die Funktionen und die Vielfalt der Graph -API ausführlich erläutert.
Wie kann ich die Facebook -Graph -API verwenden? Dieses Token wird verwendet, um API -Anfragen im Namen eines Benutzers zu stellen. Die API basiert auf HTTP, sodass Sie sie mit jeder Sprache mit einer HTTP -Bibliothek wie Curl verwenden können. Die Graph -API bietet Entwicklern ein leistungsstarkes Tool, um auf Facebook auf eine Vielzahl von Daten zuzugreifen und zu manipulieren. Sie können Ihre App oder Website in Facebook integrieren, um die Milliarden von Benutzern zu erreichen. Sie können Facebook -Objekte über die API lesen, schreiben und aktualisieren, um sie zu einem vielseitigen Tool für die Integration von sozialen Medien zu machen.
Wie kann ich meine Facebook -Graph -API -Anforderungen testen? Mit diesem Tool können Sie API -Anfragen stellen, ohne Code zu schreiben. Sie können es verwenden, um Ihre Anfragen zu testen und die Antworten in Echtzeit anzusehen. API-Nutzung, Sie sollten immer eine verschlüsselte Verbindung (HTTPS) verwenden, Ihr Zugriffstoken niemals in den clientseitigen Code einfügen und die Berechtigungen Ihrer App regelmäßig überprüfen und aktualisieren.
Das obige ist der detaillierte Inhalt von2 coole Dinge, die Sie mit der Facebook -Graph -API machen können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!