oauth-2.0 - secret - service account google drive api
Error: invalid_request device_id y device_name son necesarios para IP privada (6)
Obtuve el mismo error hasta que lo cambié de una dirección IP a un nombre de dominio, (192.168.1.113 a localhost en mi caso) por lo que parece que Google no aceptará direcciones IP simples.
Use un nombre de dominio para su sandbox o configure un servidor de dominio local si no tiene uno.
Estaba haciendo mi desarrollo con Google Drive API usando [localhost: 8080]. De repente, sentí que debía probarlo en mi sandbox de implementación local y tenía una dirección IP como [192.168.1.1:8080]. Y por eso cambié la credencial en la URL de devolución de llamada del cliente de la consola del desarrollador. Estoy usando OAuth2WebServerFlow para obtener el token de actualización con el consentimiento del usuario. Luego, en el futuro, estoy usando el token de actualización y OAuth2WebServerFlow para autenticar al usuario. Pero me sorprendió, recibí el error:
- Eso es un error. Error: invalid_request device_id y device_name son necesarios para la IP privada:
No sé lo que está sucediendo o cómo puedo solucionarlo. Qué está pasando, no entiendo
Editar: solo relevante cuando se desarrolla localmente.
Ok, estoy teniendo el mismo problema en mi Mac. Los siguientes pasos resolvieron el problema
Vaya a la consola de desarrollo de google https://console.developers.google.com/project , elija las credenciales y cambie la IP de devolución de llamada a un dominio como http://myflask.com:5000/oauth2callback . En mi caso, estoy usando una aplicación Flask, por lo que el puerto 5000 es necesario.
A continuación, agregue a su archivo privado / etc / hosts una nueva entrada que coincida con el nombre de host anterior a su ip, así:
(ejemplo IP)
172.1.1.1 myflask.com
- Déle a Google un minuto para actualizar sus credenciales y visite su sitio en myflask.com:5000
Google no aceptará una dirección IP local (privada) cuando realice llamadas Oauth. Mi solución fue agregar una entrada en mi archivo de hosts de Windows para la IP local:
/Windows/System32/drivers/etc
192.168.1.2 fakedomain.com
luego registra fakedomain.com
con Google en su consola de desarrollo. Eso aparece como un dominio "real" para ellos, pero se resolverá en su navegador con la IP local. Estoy seguro de que un enfoque similar en Mac o Linux también funcionaría.
Modifique los hosts de su archivo en / Windows / System32 / drivers / etc / hosts
agrega "192.168.1.2 fakedomain.com" en el archivo hosts
reinicia tus ventanas
Actualiza la actualización de la consola google 192.168.1.2 a fakedomain.com
Una alternativa para editar un archivo de hosts
es usar el servicio "Magic DNS" http://xip.io/ o http://nip.io/ (ver edición)
xip.io es un nombre de dominio mágico que proporciona un comodín DNS para cualquier dirección IP. Diga que su dirección IP de LAN es 10.0.0.1. Usando xip.io,
10.0.0.1.xip.io resolves to 10.0.0.1 www.10.0.0.1.xip.io resolves to 10.0.0.1 mysite.10.0.0.1.xip.io resolves to 10.0.0.1 foo.bar.10.0.0.1.xip.io resolves to 10.0.0.1
Con este servicio, puede especificar un dominio de aspecto público que se resuelva en una dirección privada.
En la consola, si su URI de redireccionamiento era ( lo que deseaba que tuviera de todos modos ):
http://192.168.1.1:8080/auth/google_oath2/callback
Reemplazarlo por:
http://192.168.1.1.xip.io:8080/auth/google_oath2/callback
"Redirigir URI" no parece aceptar comodines, por lo que todo el privado ip-xip.io debe especificarse en la consola.
No tengo ninguna afiliación con xip.io; Solo soy un usuario satisfecho.
Edición de 2016: He escuchado informes de inestabilidad con los servidores DNS de xip.io. Hay un servicio copy-cat nip.io que se comporta exactamente igual que xip.io, pero durante julio de 2016, nip.io tenía una tasa de respuesta del 100%, mientras que xip.io no.
Vale la pena señalar que en una Mac puedes hacer lo mismo editando como root:
/private/etc/hosts
Agregue una línea similar a la mencionada anteriormente
192.168.60.10 fakedomain.com