Доступ к Google Shopping API через Python
Я совершенно новичок в API Google, и я немного растерялся:)
Сначала я поиграл с Google API Explorer, и все работало нормально, все мои запросы.
Затем я начал писать небольшой Python Script для авторизации и вызова API через служебную учетную запись.
Это выглядит так:
from apiclient.discovery import build
from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import json
import os
credentials = ServiceAccountCredentials.from_json_keyfile_name(
filename='/Users/Shopping Dashboard.json',
scopes='https://www.googleapis.com/auth/content')
http = credentials.authorize(httplib2.Http())
service = build('content', 'v2', http=http)
print service.accounts().authinfo().execute()
request = service.accounts().list(merchantId='xxx', maxResults=50)
result = request.execute()
print result
Однако, хотя я думал, что все в порядке, я все еще получаю эту ошибку
googleapiclient.errors.HttpError: <HttpError 401 when requesting https://www.googleapis.com/content/v2/xxxxx/accounts?alt=json&maxResults=50 returned "User cannot access account xxxxx">
Я думаю, что здесь я скучаю по созданию своего токена (?) Перед вызовом URL? Но как это создается? Я знаю, что существует 1000 примеров, и я использовал некоторые скрипты, которые уже есть в github, и они работают, но они уже слишком сложны и сложны для меня, чтобы я мог их понять. Что мне здесь не хватает, так это понять, как этот процесс работает на каком-то простом примере, и уметь копировать логику
Большое спасибо!
2 ответа
У меня такая же проблема. Оказывается, ваш файл Shopping Dashboard.json должен исходить из самого торгового центра, а не из консоли разработчика Google.
- Убедитесь, что у вас есть доступ администратора
- В Merchant Center перейдите в выпадающее меню...> Content API
- Перейдите на вкладку "Аутентификация" и "Создать ключ API". Вы сможете увидеть эту вкладку, только если у вас есть права администратора.
- Сохраните content-api-key.json вместо /Users/Shopping Dashboard.json
Это, вероятно, символическая вещь. При использовании этого типа API токен всегда необходим. но проверьте это, чтобы увидеть, как это делается с помощью urllib2.