You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:11:18