微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Google我的商家:如何在无需用户交互的情况下生成访问令牌

如何解决Google我的商家:如何在无需用户交互的情况下生成访问令牌

我想使用Google我的商家API通过我的单位帐户详细信息搜索和管理我们客户的业务。

我想使用API​​作为代理机构,因为我想管理客户的业务。

我已经提交了API访问表单,并获得了使用API​​的确认。 另外,我在同一帐户中生成了OAuth凭据和服务帐户。

但是根据GMB api文档,我们需要传递访问令牌才能访问API。

我已经审查了使用OAuth和服务帐户进行的身份验证过程。 根据我的要求,我想直接从NodeJS服务器代码在后端生成访问令牌,而无需用户交互。

我想使用我的帐户详细信息来使用API​​,所以我需要获得用户的许可,因为我不需要任何用户信息。

我已经尝试将以下内容用作服务帐户,但会返回错误

const keys = require("./config/gmb.json");
const {oauth2client,GoogleAuth,JWT} = require('google-auth-library');
const client = new JWT({
   email: keys.client_email,key: keys.private_key,scopes: ['https://www.googleapis.com/auth/business.manage'],});
console.log(client.credentials);  // It returns refresh_token=jwt-placeholder,expiry_date=1
const tokenInfo = await client.getTokenInfo(client.credentials.access_token); // It returns Error: invalid_token 

所以任何人对此都有想法。 您的帮助将不胜感激。

解决方法

我的问题得到了答案。

如果我们想首先获取任何用户帐户的访问令牌,我们需要提示用户进行 OAuth,一旦用户授予其帐户权限,我们需要使用 google 将提供的刷新令牌存储用户帐户详细信息完成用户 OAuth 流程。

现在,每当我们需要任何用户帐户的访问令牌时,我们都可以使用完成 OAuth 过程后存储的用户帐户详细信息的刷新令牌来获取它。

注意: 如果用户更改其帐户密码或某些影响用户隐私的详细信息,刷新令牌可能会过期。

我已经完成了这个 OAuth 过程并在 NodeJs 中获取了用户的访问令牌。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。