In diesem Blog möchte ich ja meine eigenen Erfahrungen niederschreiben, in erster Linie für mich selbst, da ich so vergesslich bin.
Dabei ist mir aufgefallen, dass es manchmal Dinge gibt, die einfach zu kurz für einen Blog-Artikel sind. Da möchte ich z.B. auf einen Artikel hinweisen oder auf ein spannendes Projekt, mehr als ein kurzer Satz ist das aber nicht.
Ich habe mich dann sehr schnell dazu entschieden, diese Short-Messages über meinen Google+-Account zu veröffentlichen.
Ich habe nun schon seit fast 5 Tagen nach einer Lösung dafür gesucht, wie ich meine Google+ Beiträge hier im Blog anzeigen lassen kann. Leider bislang ohne Erfolg. Das vielversprechendste, was ich gefunden habe war http://widgetsplus.com/
Hier kann man in einer schönen, leicht zu bedienenden Oberfläche ein Widget konfigurieren und als iFrame einbinden. Hierbei hatte ich aber zwei Probleme:
- auch nach mehrfachen Versuchen habe ich es nicht geschafft, dass das Widget meine Beiträge anzeigt. Es lässt sich zwar entsprechend konfigurieren, die Liste in meinem eingebundenen iFrame war aber immer leer
- Ich habe im eingebundenen Code einen Verweis auf Google Analytics gefunden. Da ich nicht vor habe, mir für diesen Blog einen Anwalt zu nehmen, möchte ich das gerne nicht verwenden.
Also blieb mir nur noch die Möglichkeit, es selbst zu machen. Es war leichter, als ich gedacht habe. Das Ergebnis ist rechts in der Widget-Leiste zu sehen.
Was braucht man?
Die Liste der Dinge die man benötigt ist recht überschaubar, wenn man seinen Blog selbst hostet:
- PHP mit aktiviertem JSON
- einen Google Developer Account
- Einen public key
- Ein wenig PHP-Code
- Ein bisschen HTML und CSS
Zunächst muss man bei Google ein Developer Projekt erstellen. Jeder, der Google+-Beiträge anzeigen lassen will, hat ja mindestens einen Google-Account. Unter https://console.developers.google.com/project kann ein solches Projekt erstellt werden.
Anschließend muss unter „APIs & auth“ -> APIs die Google+-API aktiviert werden (ich habe bei der Gelegenheit alle anderen APIs, die ausgewählt sind, gleich deaktiviert.
Nun braucht man noch einen Public API access Schlüssel. Den erhält man unter „APIs & auth“ -> Credentials. Dort im Bereich „Public Access API“ einfach auf „Create new Key“ klicken und ggf. noch die IP-Adresse eintragen, von der der Zugriff erfolgt (ist aber nicht erforderlich).
Als nächstes holt man sich die Google APIs Client Library for PHP. Ich habe dazu Git verwendet, auf GitHub gibt es aber auch ein passendes ZIP zum Download.
Wie wird es eingebunden?
Nun muss man nur noch die API im eigenen PHP-Code verwenden.
Zunächst binden wir die notwendigen API-Klassen von Google ein. Wir brauchen den Client für die Verbindung und die Plus-API selbst:
1 2 |
include_once "Google/Client.php"; include_once "Google/Service/Plus.php"; |
Haben wir beides, können wir die den Client initialisieren und die Plus-API erstellen. Dabei verwenden wir für den Client den oben erstellten Public API access Schlüssel.
1 2 3 4 5 |
$client = new Google_Client(); $client->setApplicationName("Google Plus Widget"); $client->setDeveloperKey("[Public_API_access_key]"); $plusService = new Google_Service_Plus($client); |
Soweit so gut, nun können wir auf die API zugreifen und die Beiträge von unserem Google+ Account auslesen. Hierzu wird die eigene Google+-ID benötigt. Die ist in der URL zu finden, wenn wir uns auf unserem eigenen Google+-Account die Beiträge anzeigen lassen:
https://plus.google.com/[Google_plus_ID]/posts
Beiträge sind in der API unter der Bezeichnung „Activities“ versteckt:
1 |
$activityResource = $plusService->activities->listActivities("[Google_plus_ID]", "public"); |
Haben wir nun also die Liste mit den Activity-Objekten, können wir unsere Beiträge daraus auslesen:
1 2 3 4 5 6 7 8 |
if($item->object->objectType == "note") { $lastUpdated = new DateTime($item->updated); $postContent = $item->object->content; $postPlusOners = $item->object->plusoners->totalItems; $postReplies = $item->object->replies->totalItems; $postShares = $item->object->resharers->totalItems; $postURL = $item->object->url; } |
Nun muss man das alles nur noch schön in HTML und CSS einbetten und per iFrame in das WordPress Widget packen.
Weitere Infos
Mit der API kann man noch mehr machen. Details dazu sind hier zu finden: https://developers.google.com/+/api/
Noch ein Tipp: Wenn man im Console Project bei den APIs auf den Namen der API klickt, kommt man zu einer Liste der API-Funktionen. Klickt man diese wiederum an, kommt man zu einem Formular, mit dem man die Funktionen ausführen kann. Hier kann man sich dann schön das Ergebnis des Funktionsaufrufs anschauen.