Я реализовал экспериментальную поддержку OAuth для Google App Engine с использованием Python и запустил ее локально, но конечные точки бросают 400, когда я Разверните приложение apps.
Например, url http (s)://my-app.appspot.com/_ah/OAuthGetRequestToken возвращает 400, но локально этот шаблон url ведет себя как и ожидалось.
Я пробовал как http, так и https, и предположил, что appspot обрабатывает сертификат ssl.
UPDATE
Я использовал OAuth Playground, чтобы проверить свой код. Несмотря на документацию, похоже, требуется регистрация вашего приложения. Перейдите здесь для получения инструкций о том, как зарегистрироваться. Согласно документации во время процесса регистрации, сертификат не требуется при работе в App Engine. Игровая площадка показывает более подробную информацию об ошибке - "подпись недопустима". Если я правильно понимаю, подпись создается из базовой строки подписи. В этом случае я использую базовую строку 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
ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ
Существовали две вещи, вызывающие 400. Во-первых, приложение не было зарегистрировано. Документация Google говорит, что это необязательно, но это не так. Во-вторых, запрос не был правильно подписан. Вот отличный инструмент для отладки для тестирования ваших запросов OAuth: OAuth Playground