成 都 狮 龙 书 廊 科 技 有 限 责 任 公 司
Chengdu Shilong Pearson Education technology Limited Liability Technology Group Co., Ltd.
头条号网站验证文件
客服电话:13904310313
公司总机:028-67876373
钉钉客服:17684321066
备案电话:15680712313
商标注册服务电话:15210354365
公安部备案号:22010602000144
google-site-verification: googlea5d4809e7c237a00.html
如何获取第三方应用凭证
¥100
在上一节教程中,我们对完成了回调 URL 两种形式的实现。在本节教程,我们将使用指令回调 URL 的 HttpPost 回调方式,来接收 suite_ticket,获取 suite_access_token。
通过本节教程,开发者将了解:
在开始本教程内容前,开发者需要做如下准备:
企业微信服务器会定时(每十分钟)向指令回调 URL 推送 suite_ticket,在指令回调的后台逻辑中解密消息体即可得到对应的 InfoType 和 SuiteTicket 。
不同类型的指令回调会通过不同的 InfoType 进行区分,在每次解密得到 suite_ticket 后,应在服务端临时缓存起来。
// 读取对应的回调 typeconst info_type = callbackDataBody.InfoType;console.log('InfoType', info_type);switch (info_type) {// 推送suite_ticketcase 'suite_ticket':console.log('SuiteTicket', callbackDataBody.SuiteTicket);// 将 suite_ticket 缓存起来Tool.SaveSuiteTicket(callbackDataBody.SuiteTicket);break;default:break;}
关于 suite_ticket 的接收与使用更详细的内容,请参考 推送 suite_ticket。
在成功接受并且缓存 suite_ticket 之后,我们可以主动来获取 suite_access_token。获取suite_access_token时,需要 suite_id suite_secret suite_ticket 作为参数。
const axios = require('axios');// 读取先前缓存的 suite_ticketlet suite_ticket = Tool.GetSuiteTicket();// 【应用详情】-【回调配置】对应的 suite_id 和 suite_secret 信息const suite_id = '';const suite_secret = '';// 发起请求获取 suite_access_tokenconst {data} = await axios.post('https://testapi.work.weixin.qq.com/cgi-bin/service/get_suite_token', {suite_id,suite_secret,suite_ticket,});const{ suite_access_token,expires_in } = data;if (suite_access_token) {console.log('获取成功',suite_access_token);// 将 suite_access_token 缓存起来Tool.SaveSuiteAccessToken(suite_access_token);}else{console.error('获取失败');}
通过本接口获取的 suite_access_token 有效期为 2 小时,开发者需要进行缓存,不可频繁获取。
关于获取 suite_access_token 更详细的内容,请参考 获取第三方凭证 。
在本节教程中,我们通过接收 suite_ticket ,获取了 suite_access_token,在下节课程中,我们将演示如何进行企业授权安装应用,以及如何通过 suite_access_token 获取企业的永久授权。