Cheeeeze!

Teil 2: Verwendung des Instagram API in PHP
Kommentare

Die Registrierung ist damit abgeschlossen, und Sie können damit beginnen, die ersten Anfragen an das Instagram-API zu stellen. Als ersten Anwendungsfall werden Sie dazu die gerade populärsten Fotos von Instagram abrufen.

Instagram bietet ein REST-API an, sodass Sie die einzelnen Anfragen via HTTP an das API stellen. Der Endpoint für die beliebtesten Fotos ist:

https://api.instagram.com/v1/media/popular

Jede Anfrage an das API muss via HTTPS erfolgen, da dabei auch Nutzerdaten übertragen werden. Das API wurde restful implementiert, also verwenden Sie die GET-Methode, um Daten abzufragen. Da der Browser beim Aufruf eines URL standardmäßig eine GET-Anfrage stellt, können Sie den URL einfach im Browser eingeben und erhalten dabei die folgende Ausgabe:

{
  "meta":
  {
    "error_type":"OAuthParameterException",
    "code":400,
    "error_message":""client_id" or "access_token" URL parameter missing. This OAuth request requires either a "client_id" or "access_token" URL parameter."
  }
}

Dabei haben Sie schon drei Dinge über das API gelernt:

  1. Das Instagram-API gibt alle Daten im JSON-Format zurück
  2. Den Status der Antwort erhalten Sie über die code-Eigenschaft im meta-Objekt der Antwort; der Code 400 steht hier für den HTTP-Status Code 400 – Bad Request
  3. Die Authentifizierung am API funktioniert über die URL-Parameter client_id oder access_token

Einen Access-Token haben Sie noch nicht, eine Client-ID haben Sie jedoch bei der Registrierung erhalten. Hängen Sie also einfach diese als Parameter an den URL:

https://api.instagram.com/v1/media/popular?client_id=c15feb...97dd9

Und schon erhalten Sie, wie in Listing 1 zu sehen, eine ganze andere Ausgabe.

Listing 1

{
  "meta": {
    "code": 200
  },
  "data": [
    {
      "attribution": null,
      "tags": [],
      "type": "image",
      "location": {},
      "comments": {
        "count": 164,
        "data": []
      },
      "filter": "Sutro",
      "created_time": "1343747208",
      "link": "http://instagr.am/p/Nv-o3og3ps/",
      "likes": {},
      "images": {},
      "caption": {},
      "user_has_liked": false,
      "id": "247691991926930028_13595221",
      "user": {}
    },
    // weitere Fotos
}

Die Authentifizierung und damit auch die Abfrage waren erfolgreich – Sie erhalten jetzt den Statuscode 200 (OK) zurück. Neben dem meta-Objekt enthält die Antwort nun auch ein data-Objekt, das die eigentlichen Daten der Anfrage enthält. Bei der Abfrage der populären Fotos enthält data ein Array mit den Daten zu den einzelnen Fotos. Zu jeden Foto erhalten Sie den URL des Fotos in verschiedenen Größen (unter images), Informationen zum Nutzer, der das Foto hochgeladen hat (unter user), aber auch Informationen zu den einzelnen Kommentaren und Likes und eventuell sogar Geoinformationen, wenn diese beim Upload übermittelt wurden.

Statt die sehr umfassende JSON-Struktur im Detail zu beschreiben, verweise ich Sie auf die API-Console, mit der Sie Anfragen an das API absetzen können und die eine schöne Ausgabe der JSON-Daten (und Request- und Response-Header) liefert. Bei der Nutzung der Console müssen Sie sich nicht einmal um die Authentifizierung kümmern, da die Console (nach Ihrer Freigabe der API-Nutzung) direkt die URLs mit den entsprechenden Authentifizierungsparametern ergänzt.

Weiter mit: Teil 3

Alle Teile: Teil 1, Teil 2, Teil 3, Teil 4, Teil 5

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -