Ошибка авторизации учетных данных сервера OAuth 2.0 (консоль поиска - инструменты для веб-мастеров)
Я пытаюсь использовать приложение OAuth 2.0 for Server to Server для инструментов Google для веб-мастеров (Search Console), поэтому я следовал приведенным здесь инструкциям.
Это приложение не включено Google App Engine
или же Google Compute Engine
Создана учетная запись службы и включено делегирование на уровне домена. Скачал .json
файл и сохранил его в корне скрипта.
Образец:
from oauth2client.service_account import ServiceAccountCredentials
from apiclient.discovery import build
from httplib2 import Http
scopes = ['https://www.googleapis.com/auth/webmasters.readonly']
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'keyfile.json', scopes=scopes)
http_auth = credentials.authorize(Http())
webmasters_service = build('webmasters', 'v3', http=http_auth)
site_list = webmasters_service.sites().list().execute()
print(site_list)
Но я получаю
{}
Пустой набор данных. Даже если я изменю адрес электронной почты в keyfile.json
, Это говорит мне, что файл не привык как-то. Поэтому при попытке получить списки сайтов в аккаунте получилось пустое место.
Если я сделаю
site_list = webmasters_service.sitemaps().list(siteUrl="www.example.com").execute()
Я получил:
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/webmasters/v3/sites/www.example.com/sitemaps?alt=json returned "User does not have sufficient permission for site 'http://www.example.com/'. See also: https://support.google.com/webmasters/answer/2451999.">
Что еще раз говорит мне, что эта учетная запись не имеет права получать карты сайта данного URL
потому что он не имеет соответствующих разрешений.
Эта учетная запись является учетной записью владельца и service account
имеет разрешения владельца.
Есть идеи?
Спасибо
1 ответ
Ненавижу отвечать на свой вопрос, но вот как я заставил его работать;
- Перейдите на https://www.google.com/webmasters/tools/home?hl=en.
- Выберите свой сайт
- Нажмите на механизм (вверху справа) и нажмите на
Users and Property Owners
- Теперь перейдите по адресу: https://console.developers.google.com/permissions/projectpermissions?project=PROJECT-NAME
- Скопируйте адрес электронной почты для учетной записи службы и добавьте его
Users and Property Owners
с ПОЛНЫМ уровнем разрешения
Итак, суть в том,
а также
... учебники, которые кто-то забыл упомянуть о добавлении нового сгенерированного адреса электронной почты в раздел разрешений приложения...