通过Python

时间:2017-03-08 15:02:59

标签: python google-content-api

我是Google API的新手,我有点迷失了:)

首先我和Google APIs Explorer一起玩,一切都很好,我的所有要求。

然后我开始编写一个小的Python脚本来通过服务帐户授权和调用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 个答案:

答案 0 :(得分:0)

这可能是一件令人信服的事情。使用此类API时,始终需要令牌。但请检查this,看看如何使用urllib2完成。

答案 1 :(得分:0)

我遇到了同样的问题。结果你的&#34; Shopping Dashboard.json&#34;文件必须来自商家中心本身,而不是谷歌开发者控制台。

  • 确保您拥有管理员权限
  • 在Merchant Center中,转到...下拉菜单&gt;内容API
  • 点击“身份验证”标签&amp;生成API密钥。如果您有管理员权限,则您只能看到此标签。
  • 保存内容-api-key.json代替/ Users / Shopping Dashboard.json