新需求:钉钉E应用的AppKey和AppSecret创建dingtalk客户端
Akimotorakiyu opened this issue · comments
湫曗 commented
新需求:钉钉E应用的AppKey和AppSecret创建dingtalk客户端
湫曗 commented
/**
* Client 构造函数
* @param {Object} options 配置参数
* - {String} corpid - 企业ID
* - {String} corpsecret - 企业秘钥
* - {String} host - 钉钉服务接口地址
* - {Object} [requestOpts] - urllib 默认请求参数
* @constructor
*/
constructor(options) {
assert(options.corpid, 'options.corpid required');
assert(options.corpsecret, 'options.corpsecret required');
assert(options.host, 'options.host required');
this.options = Object.assign({
accessTokenLifeTime: (7200 - 1000) * 1000,
jsapiTicketLifeTime: (7200 - 1000) * 1000,
}, options);
}
构造函数里面必须要corpid和corpsecret
TZ | 天猪 commented
欢迎 PR 。
dingding 这块很难写单元测试,就很难维护。
湫曗 commented
发现了这个,所以问题。。。解决了。
appkey就等价于corpid,appsercert等价于corpsecret
经过测试,可以使用
真的是很神奇
if (!accessToken) {
let url;
let data;
if (appid) {
url = `${this.options.host}/sns/gettoken`;
data = { appid, appsecret };
} else {
url = `${this.options.host}/gettoken`;
data = { corpid, corpsecret };
}
const response = await this.request(url, { data });
const accessTokenExpireTime = Date.now() + this.options.accessTokenLifeTime;
accessToken = response.access_token;