Erstellen Sie Ihr eigenes benutzerdefiniertes Twitter-Plugin für WordPress

Sie haben gerade einen erstaunlichen Beitrag in Ihrem WordPress-Blog veröffentlicht und möchten dies jedem erzählen. Hast du einen Twitter-Account? Dann entwickeln wir ein Plugin, das automatisch twittert, wenn Sie einen neuen Beitrag in WordPress speichern, und lässt alle Ihre Follower wissen, dass sie etwas Neues in Ihrem Blog finden können. Lass uns anfangen!


Warum ein Twitter-Plugin von Grund auf erstellen??

Zwar gibt es viele großartige kostenlose Twitter-Plugins, aber es ist nach Ansicht der Autoren wirklich kein Ersatz für das Wissen, wie man dieses Zeug selbst macht. In vielen Fällen, wenn Sie etwas sehr Spezielles im Sinn haben, kann es auch viel einfacher sein, Ihr eigenes Plugin von Grund auf neu zu schreiben. Wenn Sie also frustriert sind, wenn Sie versuchen, ein vorhandenes Plugin zu hacken / zu gestalten / zu konfigurieren Wenn Sie auf Ihrer Website arbeiten, könnte dies die Lösung für Ihre Kopfschmerzen sein!


Bedarf

Um dieses Tutorial weiter verfolgen zu können, benötigen Sie Folgendes:

  • eine WordPress-Site-Installation
  • Abraham Williams 'twitteroauth Klasse, um Twitter-Aktionen zu manipulieren. Laden Sie es einfach herunter und speichern Sie es lokal.
  • einen Test-Twitter-Account. (Wenn Sie nicht alle Ihre Follower mit den Testnachrichten spammen möchten, senden wir sie.).

Die TwitterOAuth-Klasse

Das Abrufen und Posten von Daten bei Twitter erfordert die folgenden Schritte:

  • eine Anwendung registrieren
  • genehmigen Sie Ihre Bewerbung
  • Ermitteln durch Abfragen der Twitter-API

Die obigen Schritte 2 und 3 können langwierig sein und können Gegenstand eines vollständigen Tutorials sein. Daher empfehle ich die Verwendung einer Bibliothek, die diese Schritte ausführt. Die, die ich am meisten mag, wurde von Abraham Williams entwickelt. Es ist ziemlich einfach zu bedienen, der Code ist klar und leicht verständlich und steht auf github zur Verfügung.

Mit diesem Plugin können wir die Details der Verbindung zu Twitter und des Abrufs von Daten entfernen, da diese Aufgaben von der TwitterOAuth-Klasse ausgeführt werden.


Registrieren Sie eine Twitter-Anwendung

Wie bereits erwähnt, ist der erste Schritt zur Implementierung unseres Plugins die Registrierung einer neuen Twitter-Anwendung. Mit dieser Anwendung erhalten wir Zugriffsschlüssel, mit denen wir die erforderlichen Twitter-Daten abrufen können. Navigieren Sie in Ihrem Browser zur Twitter-Entwicklerseite und melden Sie sich mit Ihrem Testbenutzerkonto an. Klicken Sie dann auf den Link "App erstellen". Füllen Sie das Formular mit den erforderlichen Informationen aus (Sie können einen Platzhalter für die Website platzieren).

Es ist sehr wichtig, auch das Callback-URL-Feld auszufüllen, da es die Anwendung von Callbacks einschränken wird, wenn Sie das Feld leer lassen. Auf jeden Fall verwenden wir nicht den in diesem Feld eingegebenen Wert, sondern einen im WordPress-Plugin konfigurierten Wert.

Stimmen Sie den Entwicklerregeln zu und geben Sie die Captcha-Informationen ein. Klicken Sie anschließend auf die Schaltfläche "Erstellen Sie Ihre Twitter-Anwendung". Sie werden auf die Seite im Screenshot weitergeleitet:

Scrollen Sie nach unten zum Abschnitt "Ihr Zugriffstoken" und klicken Sie auf die Schaltfläche "Mein Zugriffstoken erstellen". Diese Aktion generiert ein Zugriffstoken und ein Zugriffstoken-Secret, die zusammen mit dem Consumer-Schlüssel und dem Consumer-Secret dazu verwendet werden, sich bei Twitter anzumelden und zur Durchführung von Vorgängen an den Twitter-Daten autorisiert zu werden.


Schritt 0 Verspottung unserer Bewerbung

Ich weiß, dass Sie mit dem Schreiben des WordPress-Plugins bemüht sind, Ihre Hände schmutzig zu machen. Aber bevor wir uns ansehen, wie wir die TwitterOAuth-Klasse verwenden können. Nehmen Sie sich Zeit, die Dokumentationsdatei und den Code auf github zu studieren. Danach entwickeln wir gemeinsam eine kleine Mockup-Anwendung, um zu sehen, ob wir sie erfolgreich einsetzen können.

Die wichtigsten Dateien aus Abrahams Bibliothek befinden sich im Ordner twitteroauth. Tatsächlich sind dies die einzigen Dateien, die die Implementierung der Bibliothek enthalten. Die restlichen Dateien sind nur ein Beispiel für die Verwendung der Klasse.

Ordnerstruktur

Bereiten Sie eine Ordnerstruktur wie folgt vor:

Wie Sie sehen, haben wir für unsere Versuchsanwendung die Struktur des gesamten Projekts von github übernommen. Wir werden es ein wenig ändern, da wir nicht alle Aktionen der von Abraham Williams implementierten Demo-App benötigen.

Der Code für die Spottanwendung

Lassen Sie uns prüfen, was wir geändert haben, indem Sie die Dateien einzeln übernehmen.

index.php

 / * Erforderliche lib-Dateien laden. * / requir_once ('twitteroauth / twitteroauth.php'); required_once ('config.php'); / * Ein TwitterOauth-Objekt mit Consumer- / User-Token erstellen. * / $ connection = new TwitterOAuth (CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); / * Wenn die Methode gesetzt ist, erfolgt ein Änderungs-API-Aufruf. Test wird standardmäßig aufgerufen. * / $ content = $ connection-> get ('account / verify_credentials'); $ connection-> post ('statuses / update', array ('status' => 'Statustext hier')); / * Include HTML zur Anzeige auf der Seite * / include ('html.inc');

Die Datei index.php ist der Einstiegspunkt unserer Anwendung. Wenn Sie Ihre Site im Browser besuchen, wird dieser Code ausgeführt. Die Kommentare machen es ziemlich selbsterklärend. Die Parameter des TwitterOAuth-Klassenkonstruktors stammen aus der Datei config.php, die wir in Kürze besuchen werden. Nachdem wir eine Verbindung zu Twitter hergestellt haben, müssen wir uns selbst autorisieren, indem Sie eine Abrufanforderung mit den Parametern 'account / verify_credentials' ausführen.

Das Ergebnis der Abrufanforderung wird in der Variablen $ content gespeichert und dem Benutzer durch die Datei html.inc angezeigt, sodass auch eine Rückmeldung der Operation angezeigt wird. Um etwas bei Twitter zu posten, führen wir eine Post-Anfrage mit dem Parameter 'statuses / update' und dem zu sendenden Text durch.

config.php

 / ** * @file * Ein einzelner Ort zum Speichern der Konfiguration. * / define ('CONSUMER_KEY', 'store_here_the_consumer_key'); define ('CONSUMER_SECRET', 'store_here_the_consumer_secret'); define ('ACCESS_TOKEN', 'store_here_the_access_token'); define ('ACCESS_TOKEN_SECRET', 'store_here_the_access_token_secret'); define ('OAUTH_CALLBACK', 'http://twitter.dev/callback.php');

Beachten Sie, dass die OAuth-Callback-URL auf der Website http://twitter.dev basiert. Auf diese Weise habe ich meinen virtuellen Host in Apache auf meinem Computer definiert. Sie können sich mit einem anderen Namen definieren.

In dieser Datei definieren wir unsere Konstanten. Die ersten vier sind Parameter im TwitterOAuth-Konstruktor (siehe oben) und die letzten ersetzen die Rückruf-URL, die wir bei der Definition der Anwendung eingegeben haben. Sie erhalten die ersten vier Konstanten aus der Twitter-Anwendung.

html.inc

Ich werde den Code hier nicht aufführen, da er ziemlich einfach ist. Sie können ihn im Downloadbereich herunterladen. Es erstellt einen Header für die Seite und zeigt im Inhaltsbereich lediglich die $ content-Variable an. Unser Ziel ist es, auf Twitter einen Tweet zu erhalten, daher dient diese Datei nur dazu, ein Feedback zu unseren Anfragen zu erhalten.

Kontrollpunkt

Toll, unsere Mock-up-Anwendung ist fertig. Es ist Zeit zu sehen, was wir bisher gemacht haben. Besuchen Sie Ihre Website also in Ihrem Browser und prüfen Sie dann Ihr Test-Twitter-Konto. Sie sollten dort einen Tweet mit dem Text haben: "Statustext hier".


Schritt 1 Bereiten Sie die Ordnerstruktur vor

Nun, da wir die Verwendung der Bibliothek verstehen, können wir mit der Entwicklung unseres WordPress-Plugins beginnen.

Wir müssen einige Regeln befolgen, um unser Plugin in WordPress zu integrieren. Gehen Sie in Ihren WordPress-Installationsordner und gehen Sie zum Ordner wp-content / plugins, und erstellen Sie eine Verzeichnisstruktur wie in der folgenden Abbildung:

Abraham Williams Bibliothekscode wird im lib-Ordner und die Klasse, die wir entwickeln, im Include-Ordner gespeichert. In der Datei index.php im Stammverzeichnis unseres Unterordners speichern wir den Code, der die WordPress-Aktion auslöst.


Schritt 2 Erstellen Sie den Code des Plugins

Endlich sind wir da. Wir werden den Code unseres Plugins schreiben. Einige Überlegungen zum Design: Wir können den gesamten Code in der Datei index.php speichern. Dies kann eine gute Option für ein einfaches Plugin sein. Ich entschied mich jedoch aus zwei Gründen, den Code in einer separaten Datei in einer Klasse zu speichern (im Include-Ordner gespeichert). Die Hauptsache ist, dass die Funktionsweise des Plugins später einfacher wird, wenn derselbe Vorgang durchgeführt wird, als wenn der gesamte Code in einer einzigen Datei gespeichert wird. Zweitens möchte ich Ihnen zeigen, wie der Plugin-Code in eine Klasse geschrieben werden kann.

Informieren Sie WordPress über unser Plugin

WordPress muss wissen, dass wir ein Plugin entwickelt haben und es gerne in das Hauptsystem integrieren möchten. Dies geschieht über mehrere Kommentarzeilen in der Hauptdatei des Pugins (in unserem Fall index.php). Öffnen Sie index.php in Ihrem bevorzugten Editor und geben Sie den folgenden Code ein:

 / * Plugin-Name: myTweet-Plugin URI: http://www.google.com/ Beschreibung: Dieses Plugin wird an den Twitter-Account des Autors gesendet, sobald ein neuer Beitrag in WordPress platziert wird. Der Tweet informiert die Follower über den Titel des neuen Posts. Autor: Gabriel Cirtea Version: 1.0 Urheber URI: http://www.google.com/ * /

WordPress erwartet, dass diese Informationen in der Hauptdatei des Plugins vorhanden sind. Hier haben wir den Namen des Plugins definiert, es ist URI (was momentan auf Google verweist, da wir keine Website für unser Plugin entwickelt haben). Außerdem wird eine Plugin-Beschreibung, Autor und Version angegeben. Dies ist die einzige Information, die zur Entwicklung eines Plugins erforderlich ist. Natürlich macht ein solches Plugin nichts, ist aber in der Plugins-Liste Ihrer WordPress-Site enthalten.

Gehen Sie weiter und prüfen Sie dies… Speichern Sie Ihre Datei, melden Sie sich bei Ihrer Site an und gehen Sie zur Plugins-Seite. Sie sollten etwas wie auf dem Bild unten sehen:


Schritt 3 Unsere Arbeiterklasse

Unsere Arbeiterklasse wird zwei Aufgaben haben. Eine wird die TwitterOAuth-Klasse initialisieren und sich bei der Anwendung anmelden, und die zweite wird den Tweet durchführen, der die Welt über unseren neuen Beitrag in WordPress ankündigt.

Wir werden in der Klasse die Schlüssel speichern, die wir aus unserer Twitter-Anwendung erhalten haben. Wir haben auch eine geschützte Variable, die die Verbindung zu Twitter speichert. Dieser Deklarationsteil unserer Klasse sieht folgendermaßen aus:

 // Konstanten, die für den Zugriff auf die TwitterOAuth-Klasse const definiert sind const CONSUMER_KEY = 'your_consumer_key_here'; const CONSUMER_SECRET = 'your_consumer_secret_here'; const ACCESS_TOKEN = 'your_access_token_here'; const ACCESS_TOKEN_SECRET = 'your_access_token_secret_here'; // Klassenvariable protected static $ connection;

Die init-Funktion

Die init-Funktion ist dafür verantwortlich, eine Instanz der TwitterOAurh-Klasse zu erstellen und die Rückgabe des Konstruktors in der $ connection-Variablen zu speichern. Der Code lautet wie folgt:

 öffentliche statische Funktion init () self :: $ connection = new TwitterOAuth (self :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET); 

Die Tweet-Funktion

Die Tweet-Funktion ist an die WordPress-Aktion save_post gebunden und empfängt als Parameter die Post-ID. Mit dieser Post-ID wird der Post-Inhalt als Array abgerufen. Wir verwenden dieses Array, um den Posttitel abzurufen, den wir dann für das Tweeten verwenden, basierend auf der in der Klasse gespeicherten $ connection-Variablen.

 öffentliche statische Funktion tweet ($ postID) // Postdaten erhalten $ post = get_post ($ postID); // eine Tweet-Anfrage senden selbst :: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title)); 

Der vollständige Code unserer Arbeiterklasse sieht folgendermaßen aus:

 / ** * class TwitterCommands * * Diese Klasse ist eine Schnittstelle zwischen unserem Twitter-Plugin * und der von Abraham Williams erstellten twitteroauth-Klasse. * * Es wird eine Instanz der TwitterOAuth-Klasse erstellt und die erforderlichen * Befehle zum Platzieren eines Tweets an diese gesendet, wenn ein neuer Beitrag zur WordPress-Site hinzugefügt wird. * / class TwitterCommands // Konstanten, die für den Zugriff auf die TwitterOAuth-Klasse const definiert sind CONS CONSER_KEY = 'your_consumer_key_here'; const CONSUMER_SECRET = 'your_consumer_secret_here'; const ACCESS_TOKEN = 'your_access_token_here'; const ACCESS_TOKEN_SECRET = 'your_access_token_secret_here'; // Klassenvariable protected static $ connection; öffentliche statische Funktion init () self :: $ connection = new TwitterOAuth (self :: CONSUMER_KEY, self :: CONSUMER_SECRET, self :: ACCESS_TOKEN, self :: ACCESS_TOKEN_SECRET);  öffentlicher statischer Funktions-Tweet ($ postID) $ post = get_post ($ postID); self :: $ connection-> post ('statuses / update', array ('status' => $ post-> post_title)); 

In WordPress einhängen

Das Einbinden in WordPress bedeutet, dass WordPress Ihre Funktionen aufrufen soll, wenn ein bestimmtes Ereignis auftritt. Dies kann in zwei verschiedenen Modi erfolgen: mit Filtern und mit Aktionen. Die Funktion, die Sie zum Einhängen verwenden, ist entweder add_action oder add_filter. Welches Sie verwenden sollten, ist in der WordPress-Dokumentation angegeben. Wenn das Ereignis, zu dem Sie eine Verbindung herstellen möchten, eine Aktion ist, verwenden Sie add_action, andernfalls verwenden Sie den Filter hinzufügen.

Für unser Twitter-Plugin hängen wir an zwei Ereignissen an: der init-Aktion und der save_post-Aktion. Die init-Aktion wird aufgerufen, wenn die Seite geladen wird, und wir werden diese Aktion verwenden, um eine Verbindung zu Twitter herzustellen. Die save_post-Aktion wird aufgerufen, wenn der Benutzer einen Beitrag erstellt und aktualisiert, sodass er für Tweet verwendet wird. Der Code ist unten aufgeführt:

 / * Plugin Name: Tweet Plugin URI: http://www.tipsfor.us/ Beschreibung: Dieses Plugin wird an den Twitter-Account des Autors gesendet, sobald ein neuer Beitrag in WordPress platziert wird. Er wird die Follower über den Titel des neuen Posts informieren. Autor: Gabriel Cirtea Version: 1.0 Urheber-URI: http://www.tipsfor.us/ * / // include () oder requir () alle erforderlichen Dateien hier… requir_once ('lib / twitteroauth / twitteroauth.php'); required_once ('includes / TwitterCommands.php'); // Einstellungen und / oder Konfigurationsdetails finden Sie hier… // In WordPress-Hooks und in alle Funktionen, die beim Laden ausgeführt werden sollen, fügen Sie add_action hinzu ('init', 'TwitterCommands :: init'); add_action ('save_post', 'TwitterCommands :: tweet'); // private interne Funktionen mit einem führenden Unterstrich //, die von den Filtern oder Aktionen aufgerufen werden

Der obige Code enthält absichtlich einen kleinen Fehler, um eine Übung für Sie zu erstellen. Wie ich angegeben habe, wird die save_post-Aktion aufgerufen, wenn der Benutzer einen Beitrag erstellt oder aktualisiert. Daher wird es zweimal aufgerufen, wenn der Benutzer einen Beitrag erstellt hat und der Beitrag keinen Inhalt hat und wenn der Beitrag gespeichert wird. Dies führt dazu, dass das Tweeten zweimal mit einem standardmäßig von WordPress angegebenen Beitragstitel und das zweite mit dem vom Benutzer angegebenen Titel erfolgt. Sie müssen diesen Fehler mit einer beliebigen Methode beheben, die Sie für angemessen halten, und vielleicht sogar Ihre Lösung in den Kommentaren posten.


Das ist es!

Nun, es war nicht so schwer, oder? Das Schreiben dieses Plugins war ziemlich einfach und wir haben auch gelernt, den Code anderer Leute wiederzuverwenden. Sie können dieses Beispiel um andere Dinge erweitern, die Sie tun möchten. Sie können beispielsweise versuchen, eine direkte Nachricht an jemanden zu senden.

Vergessen Sie nicht, die WordPress- und Twitter-Dokumentation zu lesen:

  • http://codex.wordpress.org
  • https://dev.twitter.com/
  • WordPress 3 Plugin Development Essentials - ein äußerst interessantes und nützliches Buch zum Erlernen der WordPress Plugin-Programmierung.