© saicle/Shutterstock.com
Das foursquare API mit PHP ansprechen

Was ist hier noch?


In der letzten Ausgabe des PHP Magazins haben Sie gelernt, wie Sie mithilfe von PHP oder JavaScript ermitteln können, wo sich der Benutzer Ihrer Website gerade befindet. Diese Information mag zwar für Ihre Applikation interessant sein, für Ihre Nutzer hingegen weniger, denn in den meisten Fällen werden diese schon wissen, wo sie sich gerade befinden. Wenn Sie aber interessante Orte in der Nähe ermitteln und anzeigen, können Sie den Nutzern einen tatsächlichen Mehrwert bieten. Dieser Artikel zeigt, wie’s geht.

Damit Sie Ihren Nutzern Informationen über Orte zur Verfügung stellen können, werden Sie auf den folgenden Seiten das API des Dienstes „foursquare“ [1] kennenlernen. foursquare ist ein Social Network, bei dem Nutzer über ihr Smartphone an verschiedenen Plätzen einchecken können und dabei Punkte sammeln. Plätze können dabei jede geografische Position sein, Check-ins können somit in Geschäften, Restaurants, Privatwohnungen oder auch an Aussichtspunkten in der freien Natur vollzogen werden. Auf der Website (Abb. 1) kann man dann jederzeit sehen, wo sich Freunde gerade befinden und was andere Freunde dazu sagen. Der Benutzer, der die meisten Check-ins an einem Ort vorweisen kann, wird dort Mayor (Bürgermeister).

Schmidt_Foursquare_001.tif_fmt1.jpg Abb. 1: Die foursquare-Website

Letzter Aufruf zum Check-in

Im Oktober 2011 hatte foursquare weltweit bereits über 10 000 000 Nutzer und mehr als 25 000 000 Plätze in seiner Datenbank. Jede Sekunde checken 35 Personen an irgendeinem Ort ein, und können dabei auch Fotos, Tipps oder To-dos für andere Benutzer hinterlassen, sodass die foursquare-Datenbasis ständig weiter wächst. Das Interessante daran für foursquare-Nutzer ist, dass sie über die Mobile App Informationen zu Orten in der Nähe abrufen und somit auch in fremden Städten z. B. Restaurants oder hochfrequentierte Bars finden können (Abb. 2). Alle Informationen, die Sie auf der Website oder einer der mobilen Apps einsehen können, bietet foursquare mittlerweile auch über ein API an, auf das Sie kostenlos zugreifen können. Dabei ist nicht nur der lesende Zugriff möglich, Sie können sogar schreibend auf die foursquare-Daten zugreifen.

Schmidt_Foursquare_002.tif_fmt1.jpgAbb. 2: Umgebungssuche mit der iPhone-App

API-Registrierung

Bevor Sie das API verwenden können, müssen Sie sich als Consumer registrieren. Die Registrierung [2] findet im Entwicklerbereich [3] der foursquare-Website statt. Da die Registrierung als Consumer aber nur für foursquare-Nutzer möglich ist, müssen Sie sich zuerst einen entprechenden Account zulegen. Um dann Consumer zu werden, müssen Sie die folgenden drei Werte angeben: Den Namen und den Website-URL der Applikation, die auf die Daten zugreifen möchte, sowie einen Callback URL. Letzterer ist nur relevant, wenn Ihre Applikation Daten im Namen eines foursquare-Benutzers abrufen möchte. Um dies zu verstehen, müssen Sie wissen, dass foursquare zwei verschiedene APIs anbietet:

  • Das foursquare Venues API kann verwendet werden, um auf die Informationen zu Orten (die in four­square mit „Venues“ bezeichnet werden) zuzugreifen. Diese Zugriffe können anonym stattfinden. Das bedeutet, dass Sie zwar die Applikation registrieren müssen, die die Zugriffe macht, es aber keinen agierenden foursquare-Nutzer gibt, der den Aufruf durchführt. Dieses API befindet sich aktuell noch im Betastadium, kann aber trotzdem schon gut eingesetzt werden.

  • Mit dem Standard-API können Sie auch auf Daten eines Benutzers wie seine Check-ins, seine Tipps, Freunde, Fotos etc. zugreifen und sogar neue Check-ins im Namen dieses Benutzers durchführen. Um das zu ermöglichen, muss der Benutzer Ihrer Applikation über eine OAuth2-Schnittstelle [4] die Erlaubnis dazu erteilen (mehr dazu später). Teil dieser Schnittstelle ist der Callback URL Ihrer Applikation.

Da Sie in den ersten Beispielen nur auf Venue-Daten zugreifen wollen, werden Sie keine OAuth2-Anbindung implementieren müssen, sodass Sie das Feld des Callback URL mit einem beliebigen URL füllen können. Zu einem späteren Zeitpunkt können Sie die Angaben zu Ihrem API Consumer alle noch ändern. Nach der Registrierung erhalten Sie zwei Daten, die für die folgenden API-Calls benötigt werden:

  • Die CLIENT ID wird verwendet, um dem foursquare API mitzuteilen, dass Ihre Applikation den Aufruf macht. Auch wenn der Service kostenlos ist, will foursquare wissen, welche Applikation wie viele Aufrufe macht. Aktuell ist die Anzahl der Calls des Venues API auf 5000 Requests pro Applikation und Stunde begrenzt.

  • Das CLIENT SECRET ist das Passwort Ihrer Applikation, Sie dürfen es also auf keinen Fall auf Ihrer Website anzeigen oder an Dritte weitergeben. Nach dieser Registrierung haben Sie alles, was Sie für Ihren ersten API-Call benötigen.

Der erste API-Call

Bevor Sie den Call machen können, speichern Sie sowohl CLIENT ID als auch SECRET so, dass Ihre Applikation einfach darauf zugreifen kann, zum Beispiel in einer Konfigurationsdatei im INI-Format:

clientId = HTZ...SO clientSecret = 4LV...BIL

Im ersten Beispiel werden Sie jetzt sehen, wie Sie Informationen zu einem Ort vom API abrufen können. Suchen Sie sich dazu auf der foursquare-Website einen Ort aus, indem Sie entweder die Suche oder Ihren letzten Check-in verwenden. Der URL einer Venue sieht dann zum Beispiel folgendermaßen aus: https://de.foursquare.com/v/american-diner/4b6aaf08f964a52000dc2be3. Der letzte Teil des URL ist dabei die eindeutige ID der Venue, die Sie auch im API verwenden können. Aus diesen Informationen können Sie sich jetzt einen URL für den API-Aufruf erstellen, mit dem Sie alle öffentlich verfügbaren Informationen zur Venue abrufen können: ­https://api.foursquare.com/v2/venues/4b6aaf08f964a52000dc2be3?client_id=HTZ...SO&client_secret=4LV...BIL&v=20111113

Um auf Venue-Daten zuzugreifen, wird immer der Endpoint https://api.foursquare.com/v2/venues/ verwendet. Möchten Sie auf eine spezielle Venue zugreifen, hängen Sie einfach die ID der Venue an. Für das Venue API müssen Sie danach nur CLIENT ID und SECRET als Parameter anhängen, um sich zu authentifizieren. Das API liefert Ihnen nun im Browser die Daten der Venue als JSON-Strukturen zurück. Der grundsätzliche Aufbau der JSON-Rückgabe folgt immer demselben Aufbau (Listing 1).

Listing 1

{ "meta": { "code":200 }, "response": { "venue": { "id":"4b6aaf08f964a52000dc2be3", "name":"American Diner" ... } } 

Jede Rückgabe enthält in einem „Envelope“ einen Metabereich und die tatsächliche Rückgabe im res­ponse-Element. Über den Code im Metabereich können Sie bei jeder Antwort sehr schnell erkennen, ob der Aufruf korrekt funktioniert hat. Die Codes sind dabei an die ­H...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang