将 OAuth 2.0 服务帐号与 Manufacturer Center API 搭配使用
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
服务帐号是一种特殊的 Google 帐号,可供应用通过 OAuth 2.0 以编程方式访问 Google API。服务帐号使用 OAuth 2.0 流程,无需额外授权。相反,它使用只有您的应用可以访问的密钥文件。本指南介绍了如何使用服务帐号访问 Manufacturer Center API。
注意 :使用服务帐号进行身份验证的应用只能访问您自己的 Manufacturer Center 帐号。如果您要编写的第三方应用需要访问客户的 Manufacturer Center 帐号,请参阅向请求授权 指南。
前提条件
使用服务账号访问 Manufacturer Center API 的步骤
生成服务帐号凭据或访问您已生成的公共凭据。您需要创建 OAuth 2.0 客户端 ID 并获取 *.json 私钥文件:
转到 Google API 控制台 。
在页面顶部的下拉菜单中选择一个项目。如果您尚未创建任何项目,请点击 Create Project ,创建一个。
如果您尚未为此项目启用 Manufacturer Center API,请在 Google API 列表中搜索并启用它。
在左侧边栏中,选择凭据 。
如需设置服务帐号,请选择创建凭据 ,然后选择服务帐号密钥 。
在下一页上,从下拉列表中选择新的服务帐号 。
为新服务帐号命名。此名称也用作服务帐号 ID 的默认用户名。请记住该服务帐号 ID,以便稍后使用。
注意 :为服务帐号选择的角色不会影响对 Manufacturer Center API 进行哪些调用,因为对 Manufacturer Center API 方法的访问权限取决于与 Manufacturer Center 中的服务帐号 ID 关联的角色。如果不确定该选择什么,直接选择 Project►Viewer。
为密钥类型选择 JSON ,然后点击创建 。
创建 按钮将变为正在创建... ,密钥生成完成后,系统会自动将私钥下载为 *.json 文件。
重要提示 :请妥善保护 *.json 密钥文件,它允许服务帐号访问其已获得授权的 Google 服务。最好让每个服务帐号只访问一个 Google API。这是一种预防措施,可在服务帐号的 *.json 密钥文件遭盗用的情况下减少攻击者可以访问的数据量。
您将返回到“凭据”页面,并且应该会在您帐号的服务帐号密钥列表中看到新服务帐号。
将新服务帐号作为用户添加到您的 Manufacturer Center 帐号中。如果您是第三方开发者,则需要让客户为您执行此步骤。
前往您的 Manufacturer Center 账号 。
前往 Manufacturer Center 账号设置中的“用户”列表。
点击“+ 用户”按钮,然后将服务帐号 ID 用作新用户的电子邮件地址。
在表单中填写服务帐号 ID ,然后选择所需的用户角色。必须至少选择一个,并且需要 Admin 角色才能使用 Accounts
服务。
如果您之前未记下服务帐号 ID,请转到服务帐号 管理页面,然后选择您创建的项目。
点击保存 按钮。您将返回到用户列表,并且服务帐号 ID 应与所选用户角色一起列出。
对您要添加的所有其他服务帐号重复此过程。
转到“用户”标签页,查看现有的服务账号用户。他们就是电子邮件地址以“gserviceaccount.com”结尾的用户。
现在,您可以使用服务帐号访问您的 Manufacturer Center 帐号,方法是使用 Google 应用默认凭据 流程或直接使用服务帐号流程 。Manufacturer Center API 示例 显示了如何采用每种受支持的编程语言将这两个流程用于服务帐号凭据。查看代码示例以试用新的服务帐号,并了解在您自己的代码中使用服务帐号需要哪些更改。
常见问题解答
我可以使用我的服务账号登录 Manufacturer Center 网页界面吗?
不可以,服务帐号不是常规 Google 帐号,因此无法访问 Manufacturer Center 网页界面。
我需要多久刷新一次服务账号访问令牌?
访问令牌在 Google OAuth 2.0 授权服务器签发一小时后过期。当访问令牌到期时,应用应使用客户端库来提取另一个访问令牌。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可 获得了许可,并且代码示例已根据 Apache 2.0 许可 获得了许可。有关详情,请参阅 Google 开发者网站政策 。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-07-09。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u6700\u540e\u66f4\u65b0\u65f6\u95f4 (UTC)\uff1a2024-07-09\u3002"}