我试图利用 google content api 购物,在我的 Google商家帐户中添加/更新产品。 我觉得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
答案 0 :(得分:2)
您似乎正在使用服务帐户访问API。确保您登录到您尝试访问的相应Google Merchant Center帐户,并将从Google Developer Console生成的服务帐户电子邮件(在您的代码中,这是SERVICE_ACCOUNT_EMAIL中的值“)添加到”设置>用户“部分并授予此电子邮件地址”标准“或”管理“访问权限,具体取决于您请求的范围。
这是一个经常错过的步骤,并未在Google的文档中专门提及。
希望这有帮助