У меня есть приложение на стороне сервера в python, которое вызывает API AdWords. Поскольку ClientLogin устарел, мне придется использовать OAuth 2.0. В основном мне нужно создать токен доступа, но я не хочу, чтобы какое-либо взаимодействие с пользователем (чтобы разрешить доступ к приложению), потому что я всегда использую то же имя пользователя и пароль на сервере, и я бы хотел использовать это имя пользователя и пароль для вызова API API.Доступ к API Google AdWords с паролем типа grant_type
Я считаю, что правильный способ сделать это через grant_type 'password' oauth2 call to https://accounts.google.com/o/oauth2/token. И это то, что я понял из OAuth2.0 RFC (http://tools.ietf.org/html/rfc6749#page-38). В RFC говорится, что строка запроса/запроса должна содержать 3 параметра: grant_type (установлен на «пароль»), имя пользователя и пароль.
Так я построил мой локон скрипт, который выглядит как:
curl -v --data "grant_type=password&[email protected]&password=password" https://accounts.google.com/o/oauth2/token
Но я запускаю команду и я вернусь с ответом от Google:
{"error" : "invalid_request"}
ли я что-то отсутствует? Есть ли простая библиотека python, которая поддерживает grant_type = password и имеет достаточно хорошую документацию?
Правильно, но с типом grantization_code я перенаправляю пользователя к URL-адресу auth, где они могут принимать/разрешать приложению доступ к своей учетной записи, а затем им нужно будет скопировать и вставить параметр запроса кода в URL-адрес перенаправления они получили от google (код уведомления = raw_input («Код:») в примере). В любом случае я могу сделать это за кулисами без какого-либо взаимодействия с пользователем? В моем случае нет пользователя, и это только я, у меня есть имя пользователя и пароль, которые я могу использовать, единственное, что мне нужно сделать, это получить токен доступа (используя мое собственное имя пользователя и пароль) и вызвать API – Marc
I ' отредактировал ответ. Теперь это имеет смысл? –
Я считаю, что это то, что я ищу, но вместо того, чтобы писать собственный клиент, я буду использовать модуль python OAuth2Credentials, который выполняет большинство вызовов http. Я думаю, что трюк состоял в том, что я должен сделать это только один раз, чтобы получить учетные данные, и я могу сохранить эти учетные данные навсегда, а затем использовать их для получения/обновления токенов доступа. Спасибо, ваш ответ на месте! – Marc