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}}",
"suiteList": [
{
"suiteId": "{{env.WECOM_SUITE_ID}}",
"suiteSecret": "{{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
插件会在环境上部署第三方应用相关的云函数和数据库,开发者可以通过 SDK 访问
const tcb = require('@cloudbase/node-sdk')
const wecom = require('@wecom/cloudbase-framework-plugin-node-sdk')
const app = wecom.init({
cloudbase: tcb.init({ env: tcb.SYMBOL_CURRENT_ENV }),
})
exports.main = async event => {
const suiteAccessToken = await app.getSuiteAccessToken({ suiteId })
console.log(suiteAccessToken)
}
配置说明
providerId
服务商企业 ID,在调用 getProviderAccessToken
时必填,若不调用该接口可以忽略
providerSecret
服务商 ProviderSecret,在调用 getProviderAccessToken
时必填,若不调用该接口可以忽略
token
第三方应用 Token
encodingAESKey
第三方应用 EncodingAESKey
suiteList
第三方应用列表
callbackEntry
默认 /ww-callback
自定义回调路径
customCallbackFunction
自定义回调函数,在插件解密企业微信回调消息后会把消息明文传给指定云函数,没有可不填
debug
默认 false
开启 debug 模式,输出调用日志
云函数
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: { suiteId }
}
})
console.log(result.suiteAccessToken)
对 node.js 环境,也可以通过 node-sdk 方便调用
const tcb = require('@cloudbase/node-sdk')
const wecom = require('@wecom/cloudbase-framework-plugin-node-sdk')
const app = wecom.init({
cloudbase: tcb.init({
env: tcb.SYMBOL_CURRENT_ENV
})
})
const suiteAccessToken = await app.getSuiteAccessToken({
suiteId
})
console.log(suiteAccessToken)
getProviderAccessToken
获取服务商凭证
返回说明
参数 | 类型 | 说明 |
---|
providerAccessToken | string | 服务商凭证 |
getSuiteAccessToken
获取第三方应用凭证
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suiteId | string | 是 | 第三方应用 ID |
返回说明
参数 | 类型 | 说明 |
---|
suiteAccessToken | string | 第三方应用凭证 |
getAuthInfo
获取企业授权信息
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suiteId | string | 是 | 第三方应用 ID |
corpId | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
permanentCode | string | 企业永久授权码 |
agentId | number | 授权方应用 ID |
getCorpAccessToken
获取企业凭证
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suiteId | string | 是 | 第三方应用 ID |
corpId | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
corpAccessToken | string | 企业凭证 |
getCorpJSAPITicket
获取企业的 jsapi_ticket
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suiteId | string | 是 | 第三方应用 ID |
corpId | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
corpJSAPITicket | string | 企业 jsapi_ticket |
getAgentJSAPITicket
获取应用的 jsapi_ticket
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suiteId | string | 是 | 第三方应用 ID |
corpId | string | 是 | 授权方企业 ID |
返回说明
参数 | 类型 | 说明 |
---|
agentJSAPITicket | string | 应用 jsapi_ticket |
createSession
消费 OAuth code 并记录成员和登录态,见 获取访问用户身份
参数说明
参数 | 类型 | 必填 | 说明 |
---|
suiteId | string | 是 | 第三方应用 ID |
code | string | 是 | OAuth code |
返回说明
参数 | 类型 | 说明 |
---|
sid | string | Session ID |
userInfo | Object | 用户信息,见 WWUserInfo |
response | Object | Open API 响应数据,见 获取访问用户身份 |
createTime | string | 创建时间戳 |
accessTime | string | 最后访问时间戳 |
createQRCodeSession
消费扫码登录 OAuth code 并记录成员和登录态,见 获取登录用户信息
参数说明
参数 | 类型 | 必填 | 说明 |
---|
code | string | 是 | OAuth code |
返回说明
参数 | 类型 | 说明 |
---|
sid | string | Session ID |
userInfo | Object | 用户信息,见 WWUserInfo |
response | Object | Open API 响应数据,见 获取登录用户信息 |
createTime | string | 创建时间戳 |
accessTime | string | 最后访问时间戳 |
addSession
记录新登录态
参数说明
参数 | 类型 | 必填 | 说明 |
---|
openUserId | string | 是 | 对服务商全局唯一的用户 ID |
corpId | string | 是 | 用户所属企业 ID |
userId | string | 是 | 企业内的用户 ID |
返回说明
参数 | 类型 | 说明 |
---|
sid | string | Session ID |
timestamp | number | 创建时间戳 |
getSession
获取登录态
参数说明
返回说明
session 包含数据
参数 | 类型 | 说明 |
---|
sid | string | Session ID |
userInfo | Object | 用户信息,见 WWUserInfo |
createTime | string | 创建时间戳 |
updateTime | string | 最后访问时间戳 |
deleteSession
删除登录态
参数说明
setUser
记录用户信息
参数说明
参数 | 类型 | 说明 |
---|
openUserId | string | 对服务商全局唯一的用户 ID |
corpId | string | 用户所属企业 ID |
userId | string | 企业内的用户 ID |
getUser
获取用户信息
参数说明
返回说明
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-user
用户信息