如何通过Node.js从Zoho控制台Self Client生成Generated Code?
使用Node.js实现Zoho Self Client授权码生成及令牌获取流程
前提条件
- 已在Zoho控制台创建Self Client,获取到
client_id、client_secret,以及控制台生成的临时授权码(Generated Code) - 确认Self Client配置的
redirect_uri(一般默认是https://www.zoho.com,需和代码中保持完全一致) - 明确所需的授权范围(scopes,比如
ZohoCRM.modules.ALL)
方法一:使用Zoho官方Node.js Auth SDK
- 安装SDK
npm install @zohocrm/nodejs-sdk
- 编写代码实现令牌获取
创建zoho-auth.js文件,填入以下内容:
const { OAuthBuilder } = require('@zohocrm/nodejs-sdk'); // 初始化OAuth配置 const oauthConfig = new OAuthBuilder() .clientId("你的Client ID") .clientSecret("你的Client Secret") .grantToken("控制台生成的Generated Code") .redirectURL("https://www.zoho.com") .scope("ZohoCRM.modules.ALL,ZohoCRM.settings.ALL"); // 替换为你的授权范围 const oauthClient = oauthConfig.build(); // 生成访问令牌 async function getAccessToken() { try { const tokenResult = await oauthClient.generateAccessToken(); console.log("访问令牌:", tokenResult.accessToken); console.log("刷新令牌:", tokenResult.refreshToken); // 可将令牌存入配置文件或数据库供后续使用 } catch (err) { console.error("令牌生成失败:", err); } } getAccessToken();
方法二:手动发送HTTP请求(无需SDK)
如果不想依赖官方SDK,可直接用HTTP请求实现:
- 安装请求工具(以axios为例)
npm install axios
- 编写请求代码
const axios = require('axios'); async function exchangeToken() { const tokenUrl = "https://accounts.zoho.com/oauth/v2/token"; const requestParams = { client_id: "你的Client ID", client_secret: "你的Client Secret", grant_type: "authorization_code", code: "控制台生成的Generated Code", redirect_uri: "https://www.zoho.com" }; try { const response = await axios.post(tokenUrl, null, { params: requestParams }); console.log("访问令牌:", response.data.access_token); console.log("刷新令牌:", response.data.refresh_token); } catch (err) { console.error("请求失败:", err.response.data); } } exchangeToken();
关键注意事项
- 控制台生成的
Generated Code有效期仅60秒,需立即用于兑换访问令牌 - 兑换得到的
refresh_token可长期使用,后续无需重复生成授权码,直接用它刷新访问令牌即可 - 确保
redirect_uri与Zoho控制台Self Client配置的完全一致,否则会返回授权错误
内容的提问来源于stack exchange,提问作者EmEn
相关产品推荐
相关产品推荐

