我试图利用谷歌内容api购物来添加/更新我的谷歌商家帐户中的产品。看来我在使用OAuth时遇到了一些问题。
提前感谢您的帮助!
示例代码f = file("key.p12", 'rb')
CLIENT_SECRET = f.read()
f.close()
ACCOUNT_ID = 'xxxxxxx'
CLIENT_ID = 'xxxxxxxxx.apps.googleusercontent.com'
SERVICE_ACCOUNT_EMAIL = 'xxxxxxxx@developer.gserviceaccount.com'
SCOPE = 'https://www.googleapis.com/auth/structuredcontent'
USER_AGENT = 'content-api-example'
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL,
CLIENT_SECRET,
scope=SCOPE)
http = httplib2.Http()
http = credentials.authorize(http)
auth_token = gdata.gauth.OAuth2TokenFromCredentials(credentials)
entry = gdata.contentforshopping.data.ProductEntry()
...
shopping_client.InsertProduct(entry)
输出auth2client.client.AccessTokenRefreshError: invalid_grant
看起来您正在使用服务帐户访问API。请确保您登录到相应的Google Merchant Center帐户,您正在尝试访问并添加从Google Developer Console生成的服务帐户电子邮件(在您的代码中,这是SERVICE_ACCOUNT_EMAIL"中的值)到"设置>用户"部分,并根据您请求的范围授予此电子邮件地址"标准"或"管理"访问权限。
这是一个经常被忽略的步骤,在Google的文档中没有特别指出。
希望能有所帮助