Instagram-Fotos automatisch im Weblog veröffentlichen
Ich hatte die letzten Tage etwas Langeweile und deshalb mal ein paar Sachen ausprobiert. Heraus kam dabei, dass ich jetzt recht komfortabel auf Wunsch meine Instagram-Fotos im Weblog veröffentlichen lassen kann.
Was wird benötigt?
- Serendipity
- das Plugin serendipity_event_oembed (möglichst weit vorne in der Plugin-Liste wegen der folgenden Markup-Plugins)
- das Plugin serendipity_event_xmlrpc (möglichst weit am Ende in der Plugin-Liste)
- einen Account bei IFTTT
Konfiguration von Serendipity
Möchte man später IFTTT keinen vollen Zugang zu s9y geben, sollte man einen zusätzlichen Benutzer einrichten, der nur normaler Author ist und kein Administrator. Tut der Sicherheit bestimmt gut.
Konfiguration von oembed
Viel einstellen kann/muss man hier gar nicht. Ich für meinen Teil habe mir nur einen kostenlosen Account bei embed.ly geholt, da deren Service wohl recht gut funktioniert.
Wer oEmbed nicht kennt: Der Grischa hat dazu mal etwas geschrieben, als er das Plugin programmiert hatte.
Konfiguration von XML-RPC
Da habe ich auch nicht viel um-/eingestellt. Möglicherweise kann die Wordpress-Version relevant sein, bei mir scheint 3.2 zu funktionieren.
Konfiguration der IFTTT-Kanäle
Bevor es an das eigentliche Rezept geht, muss man die Kanäle für Instagram und Wordpress (einen Serendipity-Kanal gibt es leider nicht) aktivieren. Der Instagram-Kanal ist recht schnell erledigt, bei Wordpress muss man allerdings etwas mehr einstellen:
Blog-Url: sub.example.org/s9y/serendipity_xmlrpc.php
Username: ifttt-channel
Password: 123456778
Die Daten sind natürlich nur beispielhaft.
Einrichtung eines Rezepts
Jetzt kommt der eigentliche Spaß, bei dem man auch mal sehen muss, was für einen am besten passt. Ob das vorgeschlagene für mich funktioniert, muss sich auch erst noch beweisen.
Trigger: “if new photo by you tagged”, als Tag habe ich blog angegeben
Action: “create a post” mit folgenden Einstellungen
Title: {{CaptionNoTag}}
Body: [ e {{Url}}]
Tags: instagram
Post status: save as draft
Bitte nach [ kein Leerzeichen machen, ich musste das nur wegen der Weblog-Software eintragen, damit es nicht umgewandelt wird.
Man kann die Felder natürlich anpassen, der Body-Teil ist nur das absolute Minimum, damit das Bild per oEmbed in den Beitrag eingebunden wird. Man kann natürlich noch einen statischen Text einbauen, z. B. mit Link auf das Instagram-Profil oder den eigentlichen Beitrag, da seid ihr frei.
Kommt ihr mit dem System zurück, könnt ihr im Rezept natürlich auch einstellen, dass der Beitrag sofort veröffentlicht werden soll, dann müsst ihr den nicht nochmal extra freischalten.
Verwendung
Teilt man nun bei Instagram ein Foto mit dem Schlagwort #blog, greift IFTTT die URL und erstellt damit einen Beitrag. In der Theorie. In der Praxis muss man etwas darauf achten, wie man das Foto teilt, damit es im Weblog nicht total katastrophal aussieht.
Man sollte (wenn man die Variablen so wählt wie ich) darauf achten, dass man im Bild-Text keine weiteren Tags verwendet, da diese für den Titel komplett gelöscht werden. Das ist im Fall von #blog zwar sinnvoll, da dieses nicht in der Überschrift stehen soll, sähe aber bei anderen Konstellationen sicher doof aus, wenn Wörter fehlen. Man sollte daher zusätzliche Schlagwörter bei Instagram in einen extra Kommentar werfen. Meine Frau, die Ober-Instagram-Tag-Expertin meinte, das geht auch.
Natürlich war das jetzt auch nur ein einfaches Beispiel und über die Kombination oEmbend/XML-RPC-Schnittstelle könnte man noch viele andere Sachen treiben, aber da könnt ihr eure Phantasie selbst austesten.
Auf etwas muss ich allerdings noch hinweisen: Mit dieser Methode bleibt das Bild weiterhin auf den Servern von Instagram gespeichert, man ist damit also nicht ganz unabhängig. Möchte man das auch erreichen, muss man sich eine andere Lösung überlegen, z.B. mit Post-per-Mail, welches ich auch schon mal versucht habe. Dazu aber vielleicht ein andermal.
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt
== ERROR-REPORT (BETA/ALPHA-BUILDS) ==Notice: Only variable references should be returned by reference in /var/www/virtual/bauigel/bernd.distler.ws/include/db/mysqli.inc.php on line 101.
For more details set $serendipity['production'] = 'debug' in serendipity_config_local.inc.php to receive a stack-trace.
Robert Lender am :
Fein zu lesen, wenn es Ideen gibt wie man S9y mit anderen Diensten verknüpfen kann.
Wie du selbst schreibst ist das noch nicht ganz perfekt. Ich bin derzeit daran mir auch meine eigene Albumsoftware am Server einzurichten… aber dazu später einmal mehr.
… und falls du weitere Anregungen für Artikel brauchst. Einfach nur melden
Robert Lender schrieb auch: Barcamp als Lehrveranstaltung