XING API mit PHP (HybridAuth) abfragen

Geschrieben vor sechs Jahre und neun Monate.
Die Lesezeit beträgt etwa zwei Minuten und 39 Sekunden.

Wichtige Information: XING hat die API inzwischen wieder eingestellt.

Bereits im April 2007 gab es die ersten, lückenhafte Informationen zu einer XING API. Mehr als fünf Jahre später war es dann soweit: Im Dezember 2012 ging eine XING API für Entwickler live.

Ich durfte damals in der Betaphase die API bereits testen. Zum Testen hatte ich eine kleine “XING meets Google Maps”-Applikation geschrieben. Wie der Name schon sagt, wurden alle Kontakte in einer Google Maps angezeigt. Somit konnte ich leicht überblicken, wer überhaupt wo sitzt. Die Applikation ging nie live, auch mein Code lag Ewigkeiten ungenutzt herum.

Letztes Wochenende hatte ich ein bisschen Zeit und habe einen XING.com Provider für HybridAuth geschrieben. Wer also etwas mit der API experimentieren möchte, kann diesen Provider als Ausgangsbasis nutzen.

Wie funktioniert die Sache?

Zuerst laden wir die letzte Version von HybridAuth herunter. Aus diesem Archiv benötigen wir letztendlich nur den Ordner hybridauth, welchen wir entpacken. In additional-providers liegen weitere Provider und examples beinhaltet selbst sprechend Beispiele.

Anschließend die install.php aufrufen (zum Beispiel http://localhost/hybridauth/install.php). HybridAuth Endpoint URL sollte bereits korrekt gesetzt sein, die Provider unter Providers setup können alle auf disable gesetzt werden. Mit einem Klick auf “Setup HybridAuth” wird die neue config.php gespeichert.

Jetzt laden wir die letzte Version von HybridAuth-XING herunter und entpacken diese in ./Hybrid/Providers. Da der Installer den XING Provider nicht berücksichtigt, fügen wir dem Array providers in der config.php folgendes hinzu:

"XING" => array (
    "enabled" => true,
    "keys"    => array ( "key" => "", "secret" => "" )
)

key entspricht dem “Consumer key” und secret dem “Consumer secret”. Diese Daten findet ihr nach dem Erstellen eurer Applikation unter dev.xing.com.

Im Ordner hybridauth erstellen wir einen Unterordner xing. Darin legen wir eine index.php mit folgendem Inhalt ab:

<?php
    require_once '../Hybrid/Auth.php';
    try {
        $oHybridAuth = new Hybrid_Auth('../config.php');
        $oXING       = $oHybridAuth->authenticate('XING');
        var_dump($oXING->getUserProfile());
        var_dump($oXING->setUserStatus('This is an example from PHP.'));
        var_dump($oXING->getUserContacts());
    }
    catch(Exception $e) {
        echo 'Error: ' . $e->getMessage();
    }

Diese Datei dann anschließend aufrufen (zum Beispiel http://localhost/hybridauth/xing/index.php). Wenn alles geklappt hat, bekommt ihr die Daten eures Profils angezeigt,

Achtung: Ohne produktiven Key sendet XING nur “verschlüsselte” Daten zurück - die Informationen eurer Kontakte sind also nicht korrekt.

Implementiert ist aktuell “User Profile”, “Update User Status” und “User Contacts”.

Sollte etwas nicht funktionieren, einfach bei GitHub ein Issue öffnen. Viel Spaß!


Kommentar schreiben


Fabian Knopf vor sechs Jahre und drei Monate:
Hallo Fabian, vielen Dank für diese Einführung in die Xing API. Hat mir sehr geholfen den Einstieg zu finden. Beste Grüße, Fabian

Richard vor fünf Jahre und sechs Monate:
Hallo! Danke für den tollen Atikel. Ohne den hätte der Einstieg in die Xing-API wohl erheblich länger gedauert. Ich versuche hier grade die Job-API anzuzapfen. Ich hab schon einiges damit rumgespielt, aber ich bekomme einfach die Schnittstelle (v1/)jobs/find nicht eingerichtet. Mir wird an der Stelle immer ein 401 ausgegeben. Die Verbindung zum Profil funktioniert hingegen einwandfrei. Gibt es bei der Job-Api etwas grundlegendes zu beachten, dass ich hier grade übersehe? Vielen Dank und Grüße!

Fabian Beiner vor fünf Jahre und sechs Monate:
Hallo Richard, der Jobs-Endpunkt ist noch im experimentellen Stadium. Das bedeutet auch, dass nur ausgewählte Benutzer diese Schnittstelle bedienen dürfen (siehe https://dev.xing.com/docs/get/jobs/find - klick auf "Experimental").