配置Google My Business API请求,解决Node.js中401未认证错误
解决Google My Business API请求的401未认证错误
我之前也碰到过一模一样的问题,这个401错误其实就是Google在明确告诉你:你的请求没携带它要求的有效认证凭证——必须是OAuth2访问令牌,Google My Business API这类需要用户授权的接口,只认这个“通行证”。结合你用request-promise发起请求的场景,给你几个具体的解决步骤:
1. 先确认你拿到了有效的OAuth2访问令牌
首先得确保你已经走完了Google OAuth2的授权流程:
- 在Google开发者控制台创建项目,启用Google My Business API
- 创建OAuth2客户端ID,通过授权码流(最常用的方式)获取到
access_token和refresh_token - 注意:授权时一定要请求Google My Business API需要的权限范围,比如
https://www.googleapis.com/auth/business.manage,不然就算拿到令牌,接口也会拒绝访问
2. 在request-promise请求中正确携带令牌
这一步是关键,你需要把获取到的access_token放到请求头的Authorization字段里,格式是Bearer 你的令牌内容。给你一个完整的代码示例:
const rp = require('request-promise'); // 替换成你实际获取到的有效access_token const validAccessToken = 'your-actual-oauth2-access-token'; // 替换成你要调用的Google My Business API具体端点 const apiEndpoint = 'https://mybusiness.googleapis.com/v4/accounts'; const requestOptions = { method: 'GET', // 根据你的需求换成POST/PUT等 uri: apiEndpoint, headers: { 'Authorization': `Bearer ${validAccessToken}`, 'Content-Type': 'application/json' }, json: true // 自动解析JSON格式的响应 }; // 发起请求 rp(requestOptions) .then(apiResponse => { console.log('API返回数据:', apiResponse); }) .catch(error => { console.error('请求失败:', error.message); });
3. 排查常见的坑
如果按上面做了还是报错,检查这几个点:
- 令牌是否正确:复制
access_token的时候有没有多空格、少字符,或者用了过期的令牌 - 权限范围是否正确:授权时没请求必要的scope,就算令牌有效也会被拒绝
- 令牌是否过期:
access_token通常有效期是1小时,过期后需要用refresh_token去刷新获取新的令牌
内容的提问来源于stack exchange,提问作者alexbea
相关产品推荐
相关产品推荐

