pricing prices google fees engine docs appengine app python google-app-engine oauth oauth-2.0

python - prices - Los puntos finales de Google App Engine OAuth lanzan 400 en producción



instance class app engine (3)

¿Qué método de solicitud es? En dev_appserver_oauth.py veo:

if method != ''GET'' and method != ''POST'': outfile.write(''Status: 400/r/n'') return

Así que solo funcionará para solicitudes GET o POST .

Implementé el soporte experimental de OAuth para Google App Engine usando Python, y lo tengo funcionando localmente, pero los puntos finales están lanzando un 400 cuando lo implemento en appspot.

Por ejemplo, la url http (s): //my-app.appspot.com/_ah/OAuthGetRequestToken devuelve 400, pero localmente ese patrón de url se comporta como se espera.

He probado http y https, y asumí que appspot maneja el certificado ssl.

ACTUALIZAR

He estado usando el OAuth Playground para probar mi código. A pesar de la documentación, parece que es necesario registrar su aplicación. Vaya here para obtener instrucciones sobre cómo registrarse. De acuerdo con la documentación durante el proceso de registro, no se requiere certificado cuando se ejecuta en App Engine. Zona de juegos muestra más detalles sobre el error: "firma no válida". Si entiendo correctamente, la firma se produce a partir de una cadena de base de firma. En este caso estoy usando la cadena base 7DYB6MJ2s-IQcd7VJYJUmcct.

GET /accounts/OAuthGetRequestToken?scope=https%3A%2F%2Fmail.google.com%2Fmail%2Ffeed%2Fatom HTTP/1.1 Host: www.google.com Accept: */* Authorization: OAuth oauth_version="1.0", oauth_nonce="168cfd60a93a46caa38dddfdcedd9de9", oauth_timestamp="1305315895", oauth_consumer_key="xxxxxxx.appspot.com", oauth_callback="http%3A%2F%2Fgooglecodesamples.com%2Foauth_playground%2Findex.php", oauth_signature_method="HMAC-SHA1", oauth_signature="4J5faUujE0VNaybyvFCiEPY7DQ8%3D" HTTP/1.1 400 Bad Request Content-Type: text/plain; charset=UTF-8 Date: Fri, 13 May 2011 19:44:55 GMT Expires: Fri, 13 May 2011 19:44:55 GMT Cache-Control: private, max-age=0 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Content-Length: 451 Server: GSE **signature_invalid** base_string:GET&https%3A%2F%2Fwww.google.com%2Faccounts%2FOAuthGetRequestToken&oauth_callback%3Dhttp%253A%252F%252Fgooglecodesamples.com%252Foauth_playground%252Findex.php%26oauth_consumer_key%3Dxxxxxx.appspot.com%26oauth_nonce%3D168cf60a94caa38e2defdcedd9de9%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1305315895%26oauth_version%3D1.0%26scope%3Dhttps%253A%252F%252Fmail.google.com%252Fmail%252Ffeed%252Fatom

ACTUALIZACIÓN FINAL

Hubo dos cosas que causaron el 400. Primero, la aplicación no estaba registrada. La documentación de Google dice que es opcional, pero ese no es el caso aparentemente. En segundo lugar, la solicitud no fue debidamente firmada. Aquí hay una excelente herramienta de depuración para probar sus solicitudes de OAuth: Oauth Playground


Debe registrar su dominio para que OAuth trabaje en producción.

Aunque los siguientes documentos indican que el registro es opcional: here

No funciona sin la inscripción desde enero.

Mira el enlace de arriba y registra tu dominio / aplicación. No es necesario enviar un certificado, esto sigue siendo opcional.


Primero asegúrese de haber habilitado el inicio de sesión federado en la configuración de la aplicación.

Según su descripción, parece que podría estar realizando una solicitud GET directa a /_ah/OAuthGetRequestToken sin ninguno de los otros parámetros necesarios de oAuth. Esto funcionará en dev_appserver, ya que es simplemente una maqueta de oAuth para que puedas completar tu código.

Consulte los parámetros enumerados en la página de descripción de OAuthGetRequestToken para ver qué se requiere y cómo tratar con la firma. Creo que puedes ignorar el scope de GAE sin embargo