Tencent CloudBase Framework Wecom Service Plugin
云开发 CloudBase Framework 框架「企业微信第三方应用」插件:通过云开发 CloudBase Framework 框架将企业微信第三方应用一键部署到云开发环境。
开始使用
在云开发配置文件 cloudbaserc.json
中写入插件配置
{
"envId": "{{envId}}",
"framework": {
"plugins": {
"wecom": {
"use": "@wecom/cloudbase-framework-plugin",
"inputs": {
"token": "{{env.WECOM_TOKEN}}",
"encodingAESKey": "{{env.WECOM_ENCODING_AES_KEY}}"
}
}
}
},
"hooks": {
"postDeploy": {
"type": "callFunction",
"functions": [
{
"functionName": "ww-action",
"params": {
"name": "setSuiteSecret",
"data": {
"suite_id": "{{env.WECOM_SUITE_ID}}",
"suite_secret": "{{env.WECOM_SUITE_SECRET}}"
}
}
}
]
}
}
}
随后创建 .env
配置文件
WECOM_SUITE_ID = xxx
WECOM_SUITE_SECRET = xxx
WECOM_TOKEN = xxx
WECOM_ENCODING_AES_KEY = xxx
配置完成后,通过 tcb deploy 命令把相关服务部署到云开发环境
tcb deploy wecom
插件会在环境上部署第三方应用相关的云函数和数据库,开发者可以通过 CloudBase SDK 访问
const tcb = require('@cloudbase/node-sdk')
const app = tcb.init({ env: tcb.SYMBOL_CURRENT_ENV })
exports.main = async event => {
const { result } = await app.callFunction({
name: 'ww-action',
data: {
name: 'getSuiteAccessToken',
data: { suite_id: process.env.MY_SUITE_ID }
}
})
console.log(result.suite_access_token)
}
配置说明
providerID
服务商企业 ID,在调用 getProviderAccessToken
时必填,若不调用该接口可以忽略
providerSecret
服务商 ProviderSecret,在调用 getProviderAccessToken
时必填,若不调用该接口可以忽略
token
第三方应用 Token
encodingAESKey
第三方应用 EncodingAESKey
callbackEntry
默认 /ww-callback
自定义回调路径
customCallbackFunction
自定义回调函数,在插件解密企业微信回调消息后会把消息明文传给指定云函数,没有可不填
sessionExpirationTime
默认 7200000
cookie 登录态的过期时间(毫秒)
云函数
ww-callback
企业微信回调入口,默认部署到 /ww-callback
路径,管理员需要把该 URL 配置成应用的指令回调 URL
ww-task-prune-session
清理数据库中过期的 cookie 登录态数据,需要配置为定时任务
ww-action
封装企业微信常用能力,使用方法如下
const { result } = await app.callFunction({
name: 'ww-action',
data: {
name: 'getSuiteAccessToken',
data: { suite_id: process.env.MY_SUITE_ID }
}
})
getProviderAccessToken
获取服务商凭证
返回说明
参数 | 类型 | 说明 |
---|
provider_access_token | string | 服务商凭证 |
getSuiteAccessToken
获取第三方应用凭证
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suite_id | string | 是 | 第三方应用 ID |
返回说明
参数 | 类型 | 说明 |
---|
suite_access_token | string | 第三方应用凭证 |
getAuthInfo
获取企业授权信息
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suite_id | string | 是 | 第三方应用 ID |
corp_id | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
permanent_code | string | 企业永久授权码 |
agent_id | number | 授权方应用 ID |
getCorpAccessToken
获取企业凭证
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suite_id | string | 是 | 第三方应用 ID |
corp_id | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
corp_access_token | string | 企业凭证 |
getCorpJSAPITicket
获取企业的 jsapi_ticket
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suite_id | string | 是 | 第三方应用 ID |
corp_id | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
corp_jsapi_ticket | string | 企业 jsapi_ticket |
getAgentJSAPITicket
获取应用的 jsapi_ticket
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suite_id | string | 是 | 第三方应用 ID |
corp_id | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
agent_jsapi_ticket | string | 应用 jsapi_ticket |
createSession
消费 OAuth code,记录登录态信息
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suite_id | string | 是 | 第三方应用 ID |
code | string | 是 | OAuth code |
返回说明
参数 | 类型 | 说明 |
---|
sid | string | Session ID |
suite_id | string | 第三方应用 ID |
device_id | string | 手机设备号 |
user_info | Object | 用户信息 |
create_time | string | 创建时间戳 |
access_time | string | 最后访问时间戳 |
ticket_info | Object | 成员票据信息,scope 为 snsapi_userinfo 或 snsapi_privateinfo,且用户在应用可见范围之内时返回 |
user_info 包含数据
参数 | 类型 | 说明 |
---|
corp_id | string | 用户所属企业 ID |
user_id | string | 用户在企业内的用户 ID |
open_userid | string | 对服务商全局唯一的用户 ID |
ticket_info 包含数据
参数 | 类型 | 说明 |
---|
user_ticket | string | 成员票据 |
expires_in | number | user_ticket 的有效时间(秒) |
getSession
获取登录态信息
参数说明
返回说明
session 包含数据
参数 | 类型 | 说明 |
---|
sid | string | Session ID |
suite_id | string | 第三方应用 ID |
device_id | string | 手机设备号 |
user_info | Object | 用户信息 |
create_time | string | 创建时间戳 |
access_time | string | 最后访问时间戳 |
user_info 包含数据
参数 | 类型 | 说明 |
---|
corp_id | string | 用户所属企业 ID |
user_id | string | 用户在企业内的用户 ID |
open_userid | string | 对服务商全局唯一的用户 ID |
deleteSession
删除登录态信息
参数说明
getUser
获取用户信息,在 createSession 中记录
参数说明
返回说明
参数 | 类型 | 说明 |
---|
user_info | Object | 用户信息 |
user_info 包含数据
参数 | 类型 | 说明 |
---|
corp_id | string | 用户所属企业 ID |
user_id | string | 用户在企业内的用户 ID |
open_userid | string | 对服务商全局唯一的用户 ID |
deleteUser
删除用户信息
参数说明
request
调用企业微信 Open API 接口
参数说明
参数 | 类型 | 必填 | 说明 |
---|
name | string | 是 | 需要请求的 API 名称 |
query | string | 否 | 请求 query 参数 |
body | string | 否 | 请求 body 参数 |
method | string | 否 | 请求方法,默认为 GET,有传入 body 时为 POST |
Collections
ww-provider-access-token
服务商凭证
ww-suite-ticket
第三方应用 ticket
ww-suite-access-token
第三方应用凭证
ww-auth-info
企业授权信息
ww-corp-access-token
企业凭证
ww-corp-jsapi-ticket
企业 jsapi_ticket
ww-agent-jsapi-ticket
应用 jsapi_ticket
ww-session
用户登录态
ww-user
用户信息