企业微信h5自建应用
如何获取accesstoken:
所需参数:corpid + corpsecret
有效期:7200s
1. 免登携带用户信息
前置参数:可信域名 + accesstoken
大致流程:
点击进入首页
- 判断当前是否存在userid→否
- 判断当前路由是否存在code→否
- redirect→/oauth2/authorize?xxxx(redirect_url)
- 因需要隐秘信息首次会弹出授权页面(30天后过期)→确认授权
- redirect→ redirect_uri?code=CODE&state=STATE 企微回调行为
- 判断当前路由是否存在code→是
- 调用/getuserinfo获取userid (唯一标识)+ userTicket(获取敏感信息1800s有效期)后端行为
- 调用/getuserdetail获取头像邮箱等敏感信息(后端保存?如何刷新?)后端行为
2. 事件推送
- 卡片内容:
重要参数:userid
示例:“touser” : “UserID1|UserID2|UserID3” - 发送应用消息(link)后端行为
3. 获取通讯录
方式一:服务端
-
获取子部门ID列表(link)获取所有部门id
-
获取部门成员详情(link)废弃
获取成员ID列表(link)获取当前部门userid列表
或
获取部门成员(link) 获取当前部门成员userid及姓名 -
用户敏感信息需按Oauth流程获取,后端api已废弃
方式二:客户端(页面效果未知)
前置条件:初始化jssdk
选人接口(文档link)
wx.invoke("selectEnterpriseContact",{})
按文档推测只能获取用户的userid+name+avatar信息
4. 分享链接
客户端(页面效果未知)(link)
wx.onMenuShareAppMessage({})
// 重点参数:
link 分享链接;在微信上分享时,该链接的域名必须与企业某个应用的可信域名一致(query带上参数)
如何初始化JS-SDK
所需参数:
- timestamp 生成签名的时间戳 自填
- nonceStr 生成签名的随机串 自填
- signature 签名 按要求生成
- jsApiList 需要使用的JS接口列表
如何获得签名:文档link 后端行为
步骤一:获取企业的jsapi_ticket
/get_jsapi_ticket?
有效期7200s(2h) 一小时内只能获取100次(单个应用)400次(一个企业)
需要缓存,不能高频获取
步骤二:将以下四个参数如下顺序拼接(顺序不可变)
jsapi_ticket=JSAPITICKET&noncestr=NONCESTR×tamp=TIMESTAMP&url=URL
其中url不能转义 且为动态获取 window.location.href.split(‘#’)[0]
步骤三:将如上string进行sha1加密
如何初始化:文档link
wx.config
进行配置
wx.config({
beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,企业微信的corpID
timestamp: '', // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
通过wx.ready
接口获取回调确认config结果