Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Google My Business:如何在没有用户交互的情况下生成访问令牌_Node.js_Google Authentication_Google Api Nodejs Client_Google My Business Api_Google Auth Library Nodejs - Fatal编程技术网

Node.js Google My Business:如何在没有用户交互的情况下生成访问令牌

Node.js Google My Business:如何在没有用户交互的情况下生成访问令牌,node.js,google-authentication,google-api-nodejs-client,google-my-business-api,google-auth-library-nodejs,Node.js,Google Authentication,Google Api Nodejs Client,Google My Business Api,Google Auth Library Nodejs,我想使用Google My Business API,使用我的组织帐户详细信息搜索和管理我们客户的业务 我想使用API作为代理,因为我想管理我们客户的业务 我已经提交了API访问表,并得到了使用API的确认。 此外,我还在同一个帐户中生成了OAuth凭据和服务帐户 但是根据GMB API文档,我们需要传递一个访问令牌才能访问API 我已经回顾了使用OAuth和服务帐户的身份验证过程。 根据我的需求,我想在后端直接从我的NodeJS服务器代码生成访问令牌,而无需用户交互 我想使用我的帐户详细信息来

我想使用Google My Business 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,一旦用户授予其帐户权限,我们需要使用刷新令牌存储用户帐户详细信息,一旦我们完成用户OAuth过程,google将提供刷新令牌

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

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


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

您获取@kc1994Hi@Xcode时出现了什么错误,请检查我的问题,我已经在代码块中提到了一个错误作为注释。实际上,我想使用GMB API通过我们的应用程序来管理我们客户的业务,但我不知道如何进行OAuth流程,因为我想在后端添加业务,而不需要用户交互。