google ruby-on-rails oauth-2.0 omniauth instagram

ruby on rails - google - La API de Oauth2 Instagram "URI de redireccionamiento no coincide con el URI de redireccionamiento registrado"



instagram login api (8)

Estoy trabajando en una aplicación de Rails que está en modo de desarrollo y puede registrarse con omniauth.

El anfitrión es

http://localhost:3000/

Estoy usando las gemas:

gem ''omniauth'' gem ''omniauth-foursquare'' gem ''omniauth-instagram''

Cuando me registro a través de omniauth con Foursquare no hay ningún problema. Todas las configuraciones son correctas y mi redirect_uri en la configuración del desarrollador de Foursquare equivale al host (localhost: 3000)

Sin embargo, si completé exactamente el mismo redirect_uri (localhost: 3000) en el administrador de clientes de Instagram *. Instagram me da esto:

{ "code": 400, "error_type": "OAuthException", "error_message": "Redirect URI does not match registered redirect URI" }

Basado en esta URL:

https://instagram.com/oauth/authorize?response_type=code&client_id=<ID>&redirect_uri=http%3A%2F%2Flocalhost%3A3000%2Fauth%2Finstagram%2Fcallback&state=18415adf24dd97873e61094f67c0fb7a94857fedf93e9d2e&scope=basic

*

¿Qué estoy haciendo mal de acuerdo con Instagram y cómo se debe arreglar esto?


... O puede seguir las instrucciones aquí:

https://instagram.com/developer/authentication/?hl=es

Consulte la sección "Paso uno: Dirija su usuario a nuestra URL de autorización".

Simplemente suministre su CLIENT_ID y REDIRECT_URI.

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code



Necesitaba agregar

http://localhost:3000/users/auth/instagram/callback

como mi URI de devolución de llamada porque estoy usando Devise.


Para cualquiera que tenga este problema y que el URL de redirección proporcionado a instagram sea exactamente el mismo que el que estás usando, he descubierto que algunos usuarios escribían la dirección de mi sitio web como http://www.example.com/login cuando estaba en mi API api era http://example.com/login .

Luego creé un script php para detectar si la cadena www existe en mi url y luego volver a cargarla en la misma página pero sin el www .

if(strpos($_SERVER[''HTTP_HOST''], ''www.'') !== FALSE) { header("Location: ".str_replace(''www.'', '''', $_SERVER[''HTTP_HOST''].''/''.$_SERVER[''REQUEST_URI''])); }


Para el módulo Drupagram (Drupal 7) agregado: http://localhost:3000/instagram/oauth como redirect_uri


Problema: el API de redireccionamiento de la API de Oauth2 "no coincide con el URI de redireccionamiento registrado

Mi solución: compruebe el archivo ng-cordova-oauth.js y compruebe la función de instagram en eso. Verifique que el valor de redirect_uri sea el mismo que el registro de su aplicación en la consola de desarrollador para Instagram. Si es el mismo funciona correctamente, de lo contrario, obtendrá el problema anterior.


Solucioné el problema yo mismo. Se agregó localhost:3000/auth/instagram/callback como redirect_uri y funcionó bien.


{"error_type": "OAuthException", "code": 400, "error_message": "El URI de redirección no coincide con el URI de redireccionamiento registrado"}

Cómo obtener token de acceso de Instagram

El URL de tu sitio web debe ser el mismo al registrar sandbox clien api en instagram https://www.instagram.com/developer/

aquí usamos la URL del sitio web: https://adlivetech.com URI válidos de redirección: https://adlivetech.com/

Para el sitio web en vivo, puede obtener el token de acceso fácilmente usando https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

Reemplazar la url anterior "CLIENT-ID" con su ID de cliente Reemplazar la URL anterior "REDIRECT-URI" url de redirección debe ser su nombre de dominio como: http://adlivetech.com

https://adlivetech.com/access_token=YOUR_ACCESS_TOken