Appearance
第三方集成
微信集成
init_wx_config
初始化微信 JSSDK。
语法:
js
init_wx_config(configKey, jsApiList, options, callBack)参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| configKey | string | 是 | 配置微信获取信息的 key,在 tokenmanage 服务器的数据库进行配置 |
| jsApiList | Array | 否 | API 列表(详细请参照微信文档) |
| options | Object | 否 | 扩展参数 |
| callBack | Function | 否 | 回调 |
options 参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| is_agent | boolean | 否 | 是否初始化企业微信 |
| debug | boolean | 否 | 打开调试模式 |
callBack 回调说明:
| 参数名 | 类型 | 说明 |
|---|---|---|
| success | Function | 成功回调 |
| error | Function | 失败回调 |
说明:
初始化之后就可以用 window.top.wx 调用微信 API。
示例:
js
// 初始化微信 JSSDK
init_wx_config(
"wechat_config_key",
['chooseImage', 'uploadImage'],
{
is_agent: true,
debug: false
},
{
getData: () => console.log("微信 JSSDK 初始化成功"),
error: () => console.log("微信 JSSDK 初始化失败"),
complete: () => console.log("微信 JSSDK 初始化完成")
}
);
// 初始化成功后调用微信 API
window.top.wx.chooseImage({
count: 1,
success: (res) => console.log("选择图片成功", res)
});check_oauth
用户虚拟用户页面(免登录页面)获取当前用户的唯一标识,例如:openid 或企业微信的 userid。
语法:
js
check_oauth(configKey, options)参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| configKey | string | 是 | 配置微信获取信息的 key,在 tokenmanage 服务器的数据库进行配置 |
| options | Object | 否 | 扩展参数 |
options 参数说明:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 否 | 自定义鉴权后跳转回来的 url(默认当前页) |
| reload | boolean | 否 | 强制重新获取用户信息(清除缓存重新获取) |
| onlycheck | boolean | 否 | 只检查(如果开启,不会跳转鉴权,之后从缓存里面读取) |
| scope | string | 否 | 授权方式,默认:先静默后全部,可选:snsapi_base(静默授权,只获取 OPENID)、snsapi_userinfo(获取其他信息) |
| cachemode | string | 否 | 用户信息缓存模式,local,session(默认) |
| times | number | 否 | 缓存过期时间(秒,local 模式使用) |
返回值说明:
- 普通微信返回数据,可以获取到 openid、用户昵称、头像等
- 企业微信可以获取到用户的唯一标识 userid
说明:
如果需要获取用户的其他详细信息,可以拿 userid 和 user_ticket 到 get_qywx_user_info 方法获取(scope 为 snsapi_userinfo 才有 ticket)。
get_qywx_user_info
获取企业微信详细信息。
语法:
js
get_qywx_user_info(configKey, userId, userTicket, callBack)参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| configKey | string | 是 | 配置微信获取信息的 key,在 tokenmanage 服务器的数据库进行配置 |
| userId | string | 是 | 企业微信的 user_id |
| userTicket | string | 是 | 企业微信的 user_ticket |
| callBack | Function | 是 | 获取完回调 |
示例:
js
// 获取企业微信详细信息
get_qywx_user_info(
"wechat_config_key",
"user_id",
"user_ticket",
(res) => console.log("企业微信详细信息:", res)
);qyapi_message_send
推送企业微信消息。
语法:
js
qyapi_message_send(config_key, wx_msg_body)参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| config_key | string | 是 | token-manager 项目中相关应用的 config_key |
| wx_msg_body | Object | 是 | 消息内容报文,参考企业微信官方文档 |
说明:
- 消息内容报文可参考企业微信官方文档。
agentid无需传递,系统会自动传入。- 其他参数根据企业微信文档填写。
返回值:
返回参数与企业微信官方文档一致:
| 参数名 | 说明 |
|---|---|
| errcode | 返回码 |
| errmsg | 对返回码的文本描述内容 |
| invaliduser | 不合法的 userid,不区分大小写,统一转为小写 |
| invalidparty | 不合法的 partyid |
| invalidtag | 不合法的标签 id |
| unlicenseduser | 没有基础接口许可(包含已过期)的 userid |
| msgid | 消息 id,用于撤回应用消息 |
| response_code | 仅消息类型为"按钮交互型""投票选择型"和"多项选择型"的模板卡片消息返回,应用可使用 response_code 调用更新模板卡片消息接口,24 小时内有效,且只能使用一次 |
示例:
js
function qywx_push_msg() {
var config_key = "SaleReport";
var wx_msg_body = {
"touser": "YouWeiBin|SuEnZe",
"msgtype": "textcard",
"textcard": {
"title": "领奖通知",
"description": "<div class=\"gray\">2016年9月26日</div> <div class=\"normal\">恭喜你抽中iPhone 7一台,领奖码:xxxx</div><div class=\"highlight\">请于2016年10月10日前联系行政同事领取</div>",
"url": "URL",
"btntxt": "更多"
},
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
};
var data = qyapi_message_send(config_key, wx_msg_body);
console.log(data);
}