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

如何在Node.js中用Keap API实现无用户授权OAuth请求?遇权限错误求助

解决Keap API无用户授权OAuth请求的"unauthorized_client"权限错误

错误原因

该错误明确指向你的Keap应用未被授予Trusted Service Account角色。client_credentials(无用户授权)的OAuth模式依赖该角色才能正常使用,因为这是服务端到服务端的授权方式,需要Keap确认应用的可信性。

解决步骤

1. 配置应用权限

  • 登录Keap开发者控制台,找到你的目标应用,检查是否启用了Trusted Service Account权限。如果未开启,部分账户可直接在控制台操作开启,若找不到入口则需联系Keap官方支持申请。
  • 确认应用的OAuth设置中,client_credentials是允许的授权类型,且full权限范围已被许可。

2. 修正代码逻辑

ChatGPT生成的代码存在流程错误:client_credentials模式不需要先获取refresh token,可直接请求得到access token。修正后的代码如下:

const axios = require('axios');
const qs = require('qs');

const CLIENT_ID = "你的clientId";
const CLIENT_SECRET = "你的clientSecret";
const GRANT_TYPE = "client_credentials";
const SCOPE = "full";

// 直接获取access_token(client_credentials模式无需refresh token)
const getAccessToken = async () => {
  const url = "https://api.infusionsoft.com/token";
  const data = {
    client_id: CLIENT_ID,
    client_secret: CLIENT_SECRET,
    grant_type: GRANT_TYPE,
    scope: SCOPE,
  };
  const config = {
    headers: { "Content-Type": "application/x-www-form-urlencoded" },
    // 部分Keap场景要求同时使用Basic Auth,此处已配置
    auth: {
      username: CLIENT_ID,
      password: CLIENT_SECRET
    }
  };
  try {
    const response = await axios.post(url, qs.stringify(data), config);
    console.log("Access Token获取成功:", response.data.access_token);
    console.log("Token有效期:", response.data.expires_in, "秒");
    return response.data.access_token;
  } catch (error) {
    console.error("获取Token失败:", error.response?.data || error.message);
    throw error;
  }
};

// 调用示例:获取Token后调用Keap API
(async () => {
  try {
    const accessToken = await getAccessToken();
    const apiResponse = await axios.get("https://api.infusionsoft.com/crm/rest/v1/accounts", {
      headers: {
        "Authorization": `Bearer ${accessToken}`
      }
    });
    console.log("API调用结果:", apiResponse.data);
  } catch (error) {
    console.error("操作失败:", error);
  }
})();

额外注意事项

  • 若配置权限后仍报错,检查是否使用了正确的Keap账户权限(需具备应用管理和授权的权限)。
  • 部分区域的Keap服务可能对client_credentials模式有额外限制,若问题持续可参考Keap官方文档的权限申请流程或联系支持。

内容的提问来源于stack exchange,提问作者esraa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:37:56