Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
@wecom/cloudbase-framework-plugin
Advanced tools
云开发 CloudBase Framework 框架「企业微信第三方应用」插件:通过云开发 [CloudBase Framework](https://github.com/TencentCloudBase/cloudbase-framework) 框架将企业微信第三方应用一键部署到云开发环境。
云开发 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": {
"suiteId": "{{env.WECOM_SUITE_ID}}",
"suiteSecret": "{{env.WECOM_SUITE_SECRET}}"
}
}
}
]
}
}
}
随后创建 .env
配置文件
# 第三方应用 ID
WECOM_SUITE_ID = xxx
# 第三方应用 Secret
WECOM_SUITE_SECRET = xxx
# 回调 Token
WECOM_TOKEN = xxx
# 回调 EncodingAESKey
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 = tcb.init({ env: tcb.SYMBOL_CURRENT_ENV })
const wecom = Wecom.init({ app })
exports.main = async event => {
const suiteAccessToken = await wecom.getSuiteAccessToken({ suiteId })
console.log(suiteAccessToken)
}
providerId
服务商企业 ID,在调用 getProviderAccessToken
时必填,若不调用该接口可以忽略
providerSecret
服务商 ProviderSecret,在调用 getProviderAccessToken
时必填,若不调用该接口可以忽略
token
第三方应用 Token
encodingAESKey
第三方应用 EncodingAESKey
callbackEntry
默认 /ww-callback
自定义回调路径
customCallbackFunction
自定义回调函数,在插件解密企业微信回调消息后会把消息明文传给指定云函数,没有可不填
sessionExpirationTime
默认 7200000
cookie 登录态的过期时间(毫秒)
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({
app: 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 |
suiteId | string | 第三方应用 ID |
deviceId | string | 手机设备号 |
userInfo | Object | 用户信息 |
createTime | string | 创建时间戳 |
updateTime | string | 最后访问时间戳 |
ticketInfo | Object | 成员票据信息,scope 为 snsapi_userinfo 或 snsapi_privateinfo,且用户在应用可见范围之内时返回 |
userInfo 包含数据
参数 | 类型 | 说明 |
---|---|---|
corpId | string | 用户所属企业 ID |
userId | string | 用户在企业内的用户 ID |
openUserId | string | 对服务商全局唯一的用户 ID |
ticketInfo 包含数据
参数 | 类型 | 说明 |
---|---|---|
userTicket | string | 成员票据 |
expiresIn | number | userTicket 的有效时间(秒) |
getSession
获取登录态
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
sid | string | 是 | createSession 返回的 sid |
返回说明
参数 | 类型 | 说明 |
---|---|---|
session | Object | 登录态信息 |
session 包含数据
参数 | 类型 | 说明 |
---|---|---|
sid | string | Session ID |
suiteId | string | 第三方应用 ID |
deviceId | string | 手机设备号 |
userInfo | Object | 用户信息 |
createTime | string | 创建时间戳 |
updateTime | string | 最后访问时间戳 |
userInfo 包含数据
参数 | 类型 | 说明 |
---|---|---|
corpId | string | 用户所属企业 ID |
userId | string | 用户在企业内的用户 ID |
openUserId | string | 对服务商全局唯一的用户 ID |
deleteSession
删除登录态
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
sid | string | 是 | createSession 返回的 sid |
getUser
获取用户信息
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
openUserId | string | 是 | createSession 返回的 openUserId |
返回说明
参数 | 类型 | 说明 |
---|---|---|
userInfo | Object | 用户信息 |
userInfo 包含数据
参数 | 类型 | 说明 |
---|---|---|
corpId | string | 用户所属企业 ID |
userId | string | 用户在企业内的用户 ID |
openUserId | string | 对服务商全局唯一的用户 ID |
deleteUser
删除用户
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
openUserId | string | 是 | createSession 返回的 openUserId |
request
调用企业微信 Open API 接口
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | 需要请求的 API 名称 |
query | string | 否 | 请求 query 参数 |
body | string | 否 | 请求 body 参数 |
method | string | 否 | 请求方法,默认为 GET,有传入 body 时为 POST |
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
用户信息
FAQs
云开发 CloudBase Framework 框架「企业微信第三方应用」插件。
The npm package @wecom/cloudbase-framework-plugin receives a total of 4 weekly downloads. As such, @wecom/cloudbase-framework-plugin popularity was classified as not popular.
We found that @wecom/cloudbase-framework-plugin demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.