Google Buzz API - невозможно устранить ошибку: «Отсутствует обязательный параметр - grant_type» - PullRequest
2 голосов
/ 30 мая 2011

Я пытаюсь сделать настольное приложение на python для отправки сообщений в Google Buzz. Я не могу обменять код (тот, который я прошу пользователя скопировать и вставить из браузера после того, как он авторизует приложение) с access_token.

Я выполняю POST для www.google.com4 / accounts / o8 / oauth2 / token следующим образом:

send: 'POST /accounts/o8/oauth2/token HTTP/1.1\r\nHost: www.google.com\r\nAccept-Encoding: identity\r\nContent-Length: 194\r\n\r\nclient_id=XXXXXXX.apps.googleusercontent.com&client_secret=XXXXXXXXXXXXXX&code=4/JFxWkTynH63BruP_dLqtJTV0O_oc&grant_type=authorization_code&redirect_uri=urn:ietf:wg:oauth:2.0:oob'
reply: 'HTTP/1.1 400 Required parameter is missing: grant_type\r\n'
header: Cache-Control: no-cache, no-store, max-age=0, must-revalidate
header: Pragma: no-cache
header: Expires: Fri, 01 Jan 1990 00:00:00 GMT
header: Date: Mon, 30 May 2011 09:04:36 GMT
header: Content-Type: text/html; charset=UTF-8
header: X-Content-Type-Options: nosniff
header: X-Frame-Options: SAMEORIGIN
header: X-XSS-Protection: 1; mode=block
header: Server: GSE
header: Transfer-Encoding: chunked
400 Required parameter is missing: grant_type
<HTML>
<HEAD>
<TITLE>Required parameter is missing: grant_type</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Required parameter is missing: grant_type</H1>
<H2>Error 400</H2>
</BODY>
</HTML>

Более конкретно, я отправляю параметры следующим образом (копировать, вставлять, отформатировать сверху):

POST /accounts/o8/oauth2/token HTTP/1.1\r\n
Host: www.google.com\r\n
Accept-Encoding: identity\r\n
Content-Length: 194\r\n
\r\n
client_id=XXXXXXX.apps.googleusercontent.com&
client_secret=XXXXXXXXXXXXXX&
code=4/JFxWkTynH63BruP_dLqtJTV0O_oc&
grant_type=authorization_code&
redirect_uri=urn:ietf:wg:oauth:2.0:oob

Есть идеи / предложения / указатели? Как мне исправить эту ошибку? Я где-нибудь не прав?

Спасибо за ваше время и терпение.

С уважением,

Шриватсан Айер

1 Ответ

1 голос
/ 10 июня 2011

[Отвечая на мой вопрос в надежде, что это поможет будущим читателям]

Мне удалось решить мою проблему.Я сделал POST из вышеуказанных данных, используя Python HTTPSConnection.GAE, вероятно, не очень хорошо с этим.Я использовал google.appengine.api.urlfetch вместо этого, и он работал просто отлично!: -)

...