uniapp开发的app唤起企业微信授权登录功能实现

720 阅读2分钟

前期准备工作

  1. 此功能需要用的企微的sdk,由于企微提供的是aar文件,因此暂时用插件市场的插件ext.dcloud.net.cn/plugin?id=1…

我自己不会处理aar文件将其转为uniapp插件,如果有大佬写了文档,麻烦贴一下地址我学习一下

  1. 该插件为付费插件,测试开发时使用自定义基座进行开发。

自定义基座如何设置?

选择自定义基座打一次包,之后真机调试时就可以选择

  1. uniapp插件配置(此处跳过)

企业微信后台配置

  1. 登录企微后台work.weixin.qq.com/wework_admi…

  1. 应用管理 -> 自建 -> 创建应用

  1. 点击进入刚刚创建好的应用,进入应用详情页面。划到最下面开发者接口区域,点击企业微信授权登录(ps:此处网页域名和可信ip也要设置,否则会影响后续用户信息查询接口)

image.png 4. 配置相关信息,此处应用签名为签名工具获取,包名在打包时可以查看到

image.png

前端代码配置

  1. 引入插件
const wwork = uni.requireNativePlugin('Wework-SDK');

2. 注册插件

// register的参数依次为:
// 企业id(后台-我的企业页面最下方获取)
// AgentId(自建应用详情页上方获取)
// schema(上一步中最后一步中配置数据时自动生成)
onMounted(() => {
		const state = 'login' + (Math.random() * Math.pow(10, 6)).toFixed(0);
		wwork.register('ww45s2w871da5s4d45as', '1000002', 'wwauth454sad454asd1a5s4d5asd', state)
	})

3. 点击按钮时调用,此处需要拿到ticket(登录失败时没有此字段 undefined)

/**  res: {
  code: number; 0(用户同意), 1(授权失败), -1(用户取消)
  msg: string;
  ticket?: string 授权成功返回的临时票据code
}
**/  
wwork.login(res => {
  console.log(res)
})

到此时,已经能正常唤起企微,并允许点击登录了。注意在配置授权登录信息时,如果应用数据配置错误,是不会唤起企微的,且如果当前登录的是其他企业,也是不会唤起的。

后续token及用户信息获取

  1. token获取

使用企微官方接口:qyapi.weixin.qq.com/cgi-bin/get…

需要两个参数:企业id:corpID;应用证明密钥(自建应用详情页面-查看secret)

详情参考官方文档developer.work.weixin.qq.com/document/pa…

  1. 通过token获取当前人的信息

企微官方接口:qyapi.weixin.qq.com/cgi-bin/aut…

需要两个参数:token:刚刚获取的;code:上文前端代码配置时提到的,获取的ticket

注意,此处如果想调通,则需要企微设置可信域名及ip,设置位置与企业微信授权登录位置相同。

详情参考官方文档developer.work.weixin.qq.com/document/pa…