企业微信-自建应用
什么是自建应用?为满足企业个性化开发需求,可以根据公司需求搭建自己的应用,同时企业微信OA数据接口、企业支付、电子发票等API,为企业接入更多个性化的办公应用,也可便捷关联已有应用。...
什么是自建应用?
一句话概括就是企业内部自用的应用
创建自建应用
登录企业微信管理后台,点击“应用管理”->“应用”,往下面滑动,有个“自建”,点击创建应用
这里随便写写,后面可以改,可见范围的意思是这个自建应用你想让谁看到
创建成功后在刚刚自建那里就会有这个应用了,点进去这个应用详情,设置可信域名、企业微信授权登录
可信域名就是之后你要开发用到的域名,填进去后需要点击“申请校验域名”,有个文件夹,把这个文件夹给后端处理,然后确定;企业微信授权的域名也是填这个域名
滑动到顶部,记录住这个应用的AgentId和Secret,后面开发会用到,去设置应用主页,这个主页是你在企业微信点击应用后进入的页面,可以设置网页和小程序,我这里设置的是网页。
自建应用创建完成!
开发自建应用
我创建的自建应用是网页,这里以网页为例,随便新建个html文件
一、获取访问用户的身份信息
1、获取access_token :这个由后端操作
2、构造网页授权链接:
var address = window.location.href;
var addresss = address.split('?');
if (addresss.length <= 1) {
var WEB_URL = "https://xxxx/index.html" //应用的主页链接,上面配的应用主页
var qsurl = "https://open.weixin.qq.com/connect/oauth2/authorize"
var appid = "xxxxxxx" //企业ID,在企业微信后台-我的企业
var redirectUrl = encodeURI(WEB_URL)
var responseType = "code"
var scope = "snsapi_base"
var state = "STATE"
var end = "#wechat_redirect"
var aimUrl = qsurl + '?appid=' + appid + '&redirect_uri=' + redirectUrl + '&response_type=' + responseType +'&scope=' + scope + '&state=' + state + end
window.location.href = aimUrl
}
复制代码
3、获取访问用户身份:需要后端通过下面来写一个接口,将用户信息返回给前端
二、开始开发
首先一定要选对文档,自建应用要选择“企业内部开发”,前端开发选择“客户端API”,选择你要开发的应用类型,因为自建应用的应用主页选择的是网页,所以我们要用到JS-SDK
步骤一:引入JS文件
<script src="https://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
复制代码
步骤二:通过config接口注入权限验证配置
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用
timestamp,nonceStr,signature需要后端配置,jsApiList里面填你会用到的接口
wx.config({
beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。开发完毕可以false
appId: '', // 必填,企业微信的corpID,就是企业ID
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法
jsApiList: [] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});
复制代码
步骤三:通过ready接口处理成功验证
config信息验证成功后会执行ready方法,所有接口调用都必须在config接口获得结果之后;
注意:
1:config是一个客户端的异步操作,需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
2:对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.ready(function(){
//页面加载就需要调用的接口,需要写在这里面
});
复制代码
步骤四:通过error接口处理失败验证
config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
wx.error(function(res){
//这里可以alert失败信息,也可以在上面config的debug出来
});
复制代码
注意:wx.config,wx.ready,wx.error是同级别的,不是父与子的关系,按顺序写下来即可
步骤五:通过agentConfig注入应用的权限
config注入的是企业的身份与权限,而agentConfig注入的是应用的身份与权限。
当调用者为第三方服务商时,通过config无法准确区分出调用者是哪个第三方应用,而在部分场景下,又必须严谨区分出第三方应用的身份,此时即需要通过agentConfig来注入应用的身份信息。
调用 wx.agentConfig需要引入 jwxwork sdk
<script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
复制代码
wx.agentConfig({
corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: '', // 必填,企业微信的应用id
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ['selectExternalContact'], //必填,传入需要使用的接口名称
success: function(res) {
// 回调
},
fail: function(res) {
if(res.errMsg.indexOf('function not exist') > -1){
alert('版本过低请升级')
}
} });
复制代码
调用agentConfig的注意事项
更多推荐
所有评论(0)