Instagram-API: müssen Bereiche mit OAuth2 implizite Authentifizierung?
Ich bin, die Anforderungen gegen die Instagram-API aus einer app. Aktuell habe ich nur die Leitung der Benutzer, um die Instagram auth url und die Angabe der response-Typ "access_token". Die Angabe dieser response_type ist bekannt als implizite auth.
Explicit auth: response_type=code
Implizite auth: response_type=access_token
Ich versuche benötigen, um aufzustehen, um einen web service zu erleichtern explicit auth. Dies wäre notwendig, weil es im explicit auth flow, die Instagram-API braucht, um einen Anruf zu tätigen, um eine redirect-URL und übergeben Sie eine "code" - parameter. Der code würde sich dann mit meinem server-side-code, um einen letzten Wunsch zu Instagram für einen access-token.
Es ist viel effizienter für eine mobile app zu verwenden implizite flow, da keine zusätzlichen privat-gepflegt auth-Dienst werden muss, Stand auf, es zu handhaben.
Instagram unterstützt die folgenden Bereiche:
- basic - zu Lesen und alle zugehörigen Daten zu einem Benutzer (z.B.
Folgen/gefolgt-von-Listen, Fotos, etc.) (standardmäßig gewährt) - Kommentare erstellen oder löschen Kommentare auf einem Benutzer-Namen
- Beziehungen - zu Folgen und unfollow Benutzer, der im Namen eines Benutzers
- mag - zu gefallen und im Gegensatz zu Elementen im Auftrag eines Benutzers
Wenn ich jede andere Art von Bereich-Spezifikation neben "basic", bekomme ich folgende Antwort, wenn der Benutzer die Anmeldeinformationen bei der auth URL:
{"code": 400, "error_type": "OAuthException", "error_message": "Invalid scope field(s): basic+likes"}
Jede Kombination von Bereichen, andere als "basic", gibt die gleiche Antwort.
So, meine Frage sind diese:
- Ist explicit auth erforderlich, um zu definieren, Bereiche jenseits von "basic"??
- Muss ich angeben response_type=code, um für erweiterte Bereiche, um zu arbeiten?
- Ist dies ein Instagram Einschränkung, oder ist es eine Einschränkung von OAuth 2.0?
Vielen Dank im Voraus.
InformationsquelleAutor NovaJoe | 2013-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe gerade versucht mit impliziten oauth-flow mit meinem client_id und Umfang=basic+mag-und es funktionierte. Ersetzen Sie die url unten mit der client_id und redirect_uri und versuchen.
Kann Instagram ist nicht erlaubt, anderen Bereich als basic mit neuen Kunden-accounts...
Ich erstellt gramfeed.com client implizite oauth ist nicht sehr sicher, die Menschen missbrauchen es, durch das sammeln von access_token aus jeder app verwenden, die für auto-likes/Kommentare, so kann instagram deaktiviert, ich kann es herausfinden und Sie wissen lassen.
Ahhhh....Ich sehe. Das könnte sehr gut werden. Ich kann sehen, wie wäre es missbraucht. Das ist, warum ich denke, wenn ich die explizite (access_token) auth flow, ich mag in der Lage sein, um die Bereiche, die ich will. Ich denke, ich werde aufstehen, meine eigenen proxy-auth-Dienst, so dass der mobile code aufgerufen werden kann. Und ja! Ich würde es wirklich schätzen, wenn Sie herausfinden könnten! Danke!
Gerade ausgecheckt Gramfeed, BTW. Sehr cool! Eine andere Sache ich habe bemerkt, über meine IG-Anforderungen...der User.Zählt.FollowedBy Eigenschaft ist immer 0. Die anderen zählt (wie Folgt und Medien) sind in Ordnung, aber Anhänger ist immer 0. Sehr seltsam.
Nur Aufnahmen, die Sie auf LinkedIn einladen.
InformationsquelleAutor krisrak
Hier ist die Antwort, dass JA, Bereiche können angefordert werden, indem implizite auth flow ganz gut. Mein problem wurde im Zusammenhang mit einer OAuth-Komponente, die ich mit war. Die Komponente wurde still URL-encoding den Wert der scope-Parameter, die abgelehnt wurde durch die Instagram auth Endpunkt. Ich aktualisiert die Komponente (Xamarin.Auth) zu empfangen, die eine nicht-codierte Rahmen param ausgestellt und einen pull-request.
Dank @krisak für die Bereitstellung einer funktionierenden URL, die ich testen konnte.
InformationsquelleAutor NovaJoe
Also ich hatte ähnliche Probleme bezüglich der Codierung der + wenn Sie versuchen, eine Erlaubnis zu erhalten, die für mehrere Bereiche (Basis, likes, Kommentare). Die Lösung fand ich war das verwenden von Leerzeichen zwischen die einzelnen Bereiche:
In der config/Initialisierungen/omniauth.rb-Datei:
InformationsquelleAutor ckessenich
Leider ab 14. April 2015 neue Kunden keinen Zugang für jeden Anwendungsbereich aber basic. Offizielle Meldung gefunden werden konnte, der bei der client-Konfiguration Seite:
Die Meldung bezieht sich folgenden blog-Eintrag: http://developers.instagram.com/post/116410697261/publishing-guidelines-and-signed-requests
Instagram erfordert persönliche Anforderung gesendet werden, aktivieren Sie Bereiche für Ihre Anwendung (client-ID), aber die app hat bestimmte Bedingungen zu erfüllen, beschrieben in dem blog-Eintrag.
InformationsquelleAutor Vladimir L.
ich habe das gleiche problem, ich fand diese Lösung und funktioniert einwandfrei
Gehen, um Kunden zu Verwalten unter instagram/developer. Klicken Sie dann auf "Bearbeiten" unterhalb Ihrer app und deaktivieren Sie die Option Deaktivieren Implizite OAuth. Es funktioniert jetzt wie vorgesehen.
Instragram änderte sich dies für einen Grund, obwohl, so sollte wohl zweimal überlegen, bevor Sie an die öffentlichkeit gehen mit Ihrer app: http://instagram.com/developer/restrict-api-requests/
InformationsquelleAutor MilapTank
Zu diesem Zeitpunkt Mai 2015, JA.
Als erklärt auf instagram-Dokumentation über Authentifizierung:
Müssen Sie sich zunächst registrieren Ihrer app hier und dann, mit der CLIENT-ID, instagram, Sie können dies tun, Anfrage:
Wo Sie haben, um Ihre client_id und redirect_uri.
Nur zur information, in der redirect_uri-Feld können Sie auch
InformationsquelleAutor Luca Davanzo
müssen Sie add "+" zwischen den Bereichen ist in "basic+Kommentare+follower_list+mag+public_content+Beziehungen"
InformationsquelleAutor aybars