2016-06-01 9 views
6

ich die folgende api mit den neuesten 3 Beiträge der öffentlichen Konten erhalten Sie auf der Website zeigen:
Instagram API OAuthAccessTokenException 400 Fehler werfen mit Client-ID

https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id={client-id}&count=3 

Ich hatte eine App erstellt den Client zu bekommen -Ich würde.
jedoch von heute hat sich diese API begann die folgende Ausnahme werfen:

{ 
    meta: { 
     error_type: "OAuthAccessTokenException", 
     code: 400, 
     error_message: "The access_token provided is invalid." 
    } 
} 

Könnten Sie bitte lassen Sie mich wissen, wie man dieses Problem zu beheben?

Antwort

0

Aus irgendeinem Grund ist das Token nicht mehr gültig. Fordern Sie es erneut an.

Mögliche Gründe, warum ein Token nicht mehr gültig ist:

  • geänderte Passwort
  • prüft das Konto
  • angemeldet in aus einem anderen Land
13

basierend auf dem Datum, haben Sie wahrscheinlich eine ältere Anwendung, die heute von der API-Migration getroffen wurde, wie mein. Kurz gesagt, entschied sich Instagram dafür, die Entwicklung für ihre Plattform WAY nerviger zu gestalten, indem alle API-Anfragen pro Benutzer authentifiziert werden müssen, sogar für Daten, die Benutzer öffentlich freigeben. Also wirst du (wie ich) wahrscheinlich deine App komplett neu gestalten.

Melden Sie sich bei instagram.com/developer an und klicken Sie auf Clients verwalten; Drücken Sie dann neben den Tasten, die Sie verwenden möchten, auf Bearbeiten. Oben in der Nähe, wird es einen Abschnitt namens "Client-Status" - wenn Ihr liest "Sandbox-Modus", Spaß mal im Voraus! Hoffentlich interagierst du mit weniger als 10 Benutzern und kannst im Sandbox-Modus bleiben, sonst musst du einen Essay schreiben, ein Video filmen und grundsätzlich darum bitten, deine Erlaubnis zurück zu bekommen (wahrscheinlich in ein paar Monaten, wenn ein Instagram Praktikant endlich gräbt) sein Weg zu dir in den Haufen von Anwendungen). Wenn es etwas liest, hast du ein anderes Problem und solltest deinen Glücksstern danken.

In der Zwischenzeit werde ich wieder Dutzende von E-Mails an die Betreuer unserer vielen, vielen angeschlossenen Instagram-Accounts verschicken, um das Problem zu erklären und zu versuchen, Berechtigungen zu erhalten, vorausgesetzt, wir werden bis dahin genehmigt. Alle unsere Social-Media-Displays werden während einer großen Veranstaltung am Samstag nicht unterbrochen. Eine andere Option könnte darin bestehen, die OAuth-less JSON-Antwort available here zu verwenden, aber das könnte die Nutzungsbedingungen ändern.

+1

Seufz .. sieht aus wie Sandbox-Modus ist auch geborken./user/endpoints scheint zu funktionieren, aber Aufrufe wie/v1/tags/selfies/media/recent? access_token = XXXX geben keine Daten zurück, obwohl der richtige Bereich vorhanden ist (zB public_content) –

+0

Die Idee ist, die neuesten Posts anzuzeigen von einem öffentlichen Konto, das zu der Website gehört, auf der es gezeigt werden würde. Willst du sagen, dass dort eine Authentifizierung notwendig ist? Die Website ist öffentlich und sollte die Beiträge ohne Benutzereingriff zeigen. Das war alles bis gestern, seit die Website im letzten Jahr gestartet wurde. – spal

+0

Ja, das ist leider genau das, was ich sage. Obwohl diese Informationen öffentlich auf der Instagram-Website verfügbar sind, haben sie jeglichen API-Zugriff auf Benutzerdaten ohne Zustimmung des Benutzers eingestellt (und die Genehmigung von Instagram ist sogar zulässig). Ich habe das gleiche Verhalten mit meiner Anwendung; Geldstrafe für buchstäblich Jahre, gestern völlig gebrochen. –

3

Ich habe eine Lösung für dieses Problem. Wenn Sie den gleichen Code verwenden, bin ich wahrscheinlich. Ich habe die letzten zwei Bilder mit diesem genommen.

https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id={client-id}&count=3

Was ich ist das folgende tat, um diese Arbeit zu bekommen.

  1. Melden Sie sich bei Ihrem Instragram-Konto an, das Sie als Anwendung verwenden.

  2. Wechseln Sie in den Entwicklerbereich (API). https://www.instagram.com/developer/clients/manage/

  3. Clients verwalten. Stellen Sie sicher, dass Ihre Website-URL mit Ihrer gültigen Weiterleitungs-URL übereinstimmt.
  4. Neuen Sandbox-Benutzer hinzufügen. Schreiben Sie den Bericht der IG Fotos, die Sie erreichen möchten.
  5. Drücken Sie diese URL: https://api.instagram.com/oauth/authorize/?client_id=CLIENTID&redirect_uri=REDIRECT_URI&response_type=token, wobei die Client-ID dieselbe ist, die Sie zuvor in Ihrer vorherigen App verwendet haben.
  6. Sie sollten zurück und Zugriff Token URL. Kopieren Sie Ihr Zugriffstoken.
  7. Melden Sie sich als Ihr Konto, dass Sie die IG Fotos von. Das Konto, das Sie als Sandbox-Benutzer hinzugefügt haben, gehen Sie zum Entwickler und genehmigen Sie die Sandbox-Einladungen.
  8. Ändern Sie Ihre ursprüngliche URL oben von https://api.instagram.com/v1/users/{user-id}/media/recent/?client_id={client-id}&count=3 zu https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS_TOKEN mit Ihrem Zugriffstoken.

Dies ist die IG API Medien Endpunkt Dokumentation: https://www.instagram.com/developer/endpoints/users/

Danach wird es für mich gearbeitet und während Sie in der Sandbox sind, sollten Sie die letzten 3 Fotos oder an dieser Stelle ziehen können, , finde heraus, wie man den JSON dazu liest.

+0

Danke, das war perfekt für mich. Um das zu erreichen, musste ich meinen Instagram-Client bearbeiten, auf die Registerkarte Sicherheit gehen und die Option "implizite OAuth deaktivieren" deaktivieren. – gregdev

+0

Was ist die "gültige Weiterleitungs-URL"? – user151841

Verwandte Themen