shop-back-end/doc/simpread-三:如何获取第三方应用凭证 - 教程...

3.8 KiB
Raw Permalink Blame History

本文由 简悦 SimpRead 转码, 原文地址 developer.work.weixin.qq.com

三:如何获取第三方应用凭证

三:如何获取第三方应用凭证

最后更新2023/06/05

在上一节教程中,我们对完成了回调 URL 两种形式的实现。在本节教程,我们将使用指令回调 URL 的 HttpPost 回调方式,来接收 suite_ticket获取 suite_access_token。

通过本节教程,开发者将了解:

  1. 如何使用指令回调 URL 接收 suite_ticket
  2. 如何获取第三方应用凭证 suite_access_token

准备工作

在开始本教程内容前,开发者需要做如下准备:

接收 suite_ticket

企业微信服务器会定时(每十分钟)向指令回调 URL 推送 suite_ticket在指令回调的后台逻辑中解密消息体即可得到对应的 InfoType 和 SuiteTicket 。
不同类型的指令回调会通过不同的 InfoType 进行区分,在每次解密得到 suite_ticket 后,应在服务端临时缓存起来。

// 读取对应的回调 type
const info_type = callbackDataBody.InfoType;
console.log('InfoType', info_type);
switch (info_type) {
    // 推送suite_ticket
    case 'suite_ticket':            
        console.log('SuiteTicket', callbackDataBody.SuiteTicket);
        // 将 suite_ticket 缓存起来
        Tool.SaveSuiteTicket(callbackDataBody.SuiteTicket);
        break;    
    default:
        break;
}

关于 suite_ticket 的接收与使用更详细的内容,请参考 推送 suite_ticket

获取 suite_access_token

在成功接受并且缓存 suite_ticket 之后,我们可以主动来获取 suite_access_token。获取 suite_access_token 时,需要 suite_id suite_secret suite_ticket 作为参数。

const axios = require('axios');
// 读取先前缓存的 suite_ticket
let suite_ticket = Tool.GetSuiteTicket();
// 【应用详情】-【回调配置】对应的 suite_id 和 suite_secret 信息
const suite_id = '';
const suite_secret = '';
// 发起请求获取 suite_access_token
const {data} = await axios.post('https://qyapi.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 获取企业的永久授权。