前言

目前企业微信已经有好多的公司在使用了。在使用时,为了更方便的与客户进行互动沟通,进行相关工作的进行,会需要对其进行二次开发。正好我所在的项目组就进行了开发,下面呢我就对企业微信第三方应用开发进行一个简单的说明。

准备

开发参考——文档 - 企业微信开发者中心

点击进入,然后点击 客户端。

进入以后呢,好多小伙伴一看是小程序开发相关,往下拉还是没有找到,这个时候我们需要点击这里,如图:

点击以后,就会发现我们的第三方应用开发文档就在底下。

这里呢我直接把地址放到这里,方便看到这里的程序猿们直接使用。

概述 - 接口文档 - 企业微信开发者中心

然后我们就直接进入代码环节吧。上干货

代码

步骤一:首先我们需要引入JS文件。看代码

<script src="//res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>

步骤二:通过config接口注入权限验证配置

wx.config({beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: '', // 必填,企业微信的corpIDtimestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '',// 必填,签名,见 附录-JS-SDK使用权限签名算法jsApiList: ['getCurExternalContact','sendChatMessage'] // 必填,需要使用的JS接口列表,凡是要调用的接口都需要传进来
});

要注意哦,这里的 timestamp nonceStr signature 都需要我们的后台同事去帮我们生成。

jsApiList 这里则是填写我们需要使用到的接口名,这里我使用到了两个

1.获取当前外部联系人userid

wx.invoke('getCurExternalContact', {}, function(res){if(res.err_msg == "getCurExternalContact:ok"){userId  = res.userId ; //返回当前外部联系人userId}else {//错误处理}});

2.分享消息到当前会话

wx.invoke('sendChatMessage', {msgtype:"text", //消息类型,必填enterChat: true, //为true时表示发送完成之后顺便进入会话,仅移动端3.1.10及以上版本支持该字段text: {content:"你好", //文本内容},image:{mediaid: "", //图片的素材id},video:{mediaid: "", //视频的素材id},file:{mediaid: "", //文件的素材id},news:{link: "", //H5消息页面url 必填title: "", //H5消息标题desc: "", //H5消息摘要imgUrl: "", //H5消息封面图片URL},miniprogram:{appid: "wx8bd80126147df384",//小程序的appid,企业已关联的任一个小程序title: "this is title", //小程序消息的titleimgUrl:"https://search-operate.cdn.bcebos.com/d054b8892a7ab572cb296d62ec7f97b6.png",//小程序消息的封面图。必须带http或者https协议头,否则报错 $apiName$:fail invalid imgUrlpage:"/index/page.html", //小程序消息打开后的路径,注意要以.html作为后缀,否则在微信端打开会提示找不到页面},
}, function(res) {if (res.err_msg == 'sendChatMessage:ok') {//发送成功}
})

这里的分享消息我并未使用这么多只是简单的发送了一个文本内容,这里使用不到,大家可以自行删除。

步骤三:通过agentConfig注入应用的权限

当我打开基础接口说明时,发现这里有一个 wx.agentConfig 方法等着我,它的作用是什么呢,文档里给出了我们答案。

还是先附上代码。

wx.agentConfig({corpid: '', // 必填,企业微信的corpid,必须与当前登录的企业一致agentid: '', // 必填,企业微信的应用id (e.g. 1000247)timestamp: , // 必填,生成签名的时间戳nonceStr: '', // 必填,生成签名的随机串signature: '',// 必填,签名,见附录-JS-SDK使用权限签名算法jsApiList: ['selectExternalContact'], //必填,传入需要使用的接口名称success: function(res) {// 回调},fail: function(res) {if(res.errMsg.indexOf('function not exist') > -1){alert('版本过低请升级')}}
});

agentConfig的作用
config注入的是企业的身份与权限,而agentConfig注入的是应用的身份与权限。尤其是当调用者为第三方服务商时,通过config无法准确区分出调用者是哪个第三方应用,而在部分场景下,又必须严谨区分出第三方应用的身份,此时即需要通过agentConfig来注入应用的身份信息。


有人会问道 config 和 agentConfig 不是一样的嘛,为什么需要调用两遍。答案来了

这里我直接附上链接—— wx.agentConfig - 接口文档 - 企业微信开发者中心

不过这里呢我还是直接将两个方法都使用了,万一后续开发的时候需要呢,当我们把这两个方法调用成功以后呢,需要在 agentConfig 方法的 success 成功的回调中去调用我们其他的方法。

今天对企业微信第三方应用的开发就讲到这里。如有问题请多多指教。

前端H5企业微信第三方应用开发浅谈(一)相关推荐

  1. 企业微信第三方应用开发--回调配置

    ** 企业微信第三方应用开发–回调配置 ** 前言:经过一段时间的研究,终于把相关配置成功实现.在这个过程中遇到各种坑,也查阅了不少的博客都未能解决问题,最后研究官方的java事例demo加已实现.下 ...

  2. 企业微信第三方应用开发授权设置(PHP版)

    开发之前一定要搞明白,企业微信不是企业微信号,虽然有相似之处,但不尽相同!!! 企业微信第三方应用与企业微信自建应用也不相同,一定要区分! !! 本地测试完成,没问题了,直接提交上线,就OK啦!!! ...

  3. 企业微信---第三方应用开发 笔记

    跳坑记录 要成为第三方供应商,先按开发文档步骤操作.服务商注册应用.也可以申请个企业微信帐号,然后成为服务商(可以做测试,但应用不能上线) 1,注册成功后,配置开发信息:通用开发参数 这里的CorpI ...

  4. 微信第三方平台开发错误码集合,各种 code

    微信第三方平台开发错误码集合 PHP static $codes = array("-1" => "系统繁忙","0" => & ...

  5. 企业微信小程序开发(行事历)

    企业微信小程序开发(行事历) 背景:最近公司外出办公的同事很多,公司需要一个小程序来记录员工的出行记录,借此来统计出行成效 主要平台 PC端,安卓端 设计思想 1.普通员工,在小程序端可以发起一次出行 ...

  6. 微信第三方平台开发流程和总结

    微信第三方平台开发流程和总结 创建第三方平台 1).在微信开放平台-管理中心-第三方平台中创建第三方平台账号.创建第三方平台 2).选择"平台型服务商类型"创建第三方平台.填写第三 ...

  7. 企业微信回调接口开发

    企业微信回调接口开发 1.从企业微信api获取加解密方法 地址:企业微信api 注意事项:这里肯定会出现下面说的异常,按照说明下载jar替换jdk原来的jar就能解决问题,如果不行那就重启电脑. 2. ...

  8. 微信第三方平台开发接入

    微信第三方平台开发接入 授权流程接入步骤如下:( 微信https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=res ...

  9. Java企业微信会话存档开发(从跳坑到爬坑)

    Java企业微信会话存档开发(从跳坑到爬坑) 本文仅作为方便首次开发企业微信使用 文章目录 Java企业微信会话存档开发(从跳坑到爬坑) 前言 一.开发准备 1.企业微信后台配置 2.sdk下载 3. ...

  10. 校园兼职网站php设计,基于PHP+MySql的校园兼职信息平台的开发浅谈

    Data Base Technique 0数据库技术基于PHP+MySqI的校园兼职信息平台的开发浅谈文刘晓智1杨雨锋2李万星2 表1:数据库一蹬表 摘要 首光简要介绍了编程语孬和MySql数据库的主 ...

最新文章

  1. Linux -- gpasswd
  2. SAP Spartacus LockFocusDirective的单步调试
  3. CF183C:Diverse Permutation(构造)
  4. 算法(20)-leetcode-剑指offer4
  5. MD5 算法描述及实现
  6. oracle 如何终止存储过程的运行
  7. 移动应用开发——实验六
  8. Objective-C 2.0 with Cocoa Foundation --- 3,类的声明和定义
  9. 《HTML与CSS入门经典(第8版)》——2.5 测试Web内容
  10. 【易实战】SpringCloud Greenwich架构概览深度详解
  11. fiddler软件抓包工具超详细配置方法
  12. 一个IT小菜鸟的成长之路
  13. 列车停站方案_城市轨道交通列车停站方案
  14. alios是安卓吗_全面了解AliOS、Android、QNX三大系统
  15. matlab矩阵变成行向量,matlab中将一个矩阵按照行拼成一个行向量应该怎么输?
  16. input输入框的事件监听
  17. Microbiome杂志和主编介绍
  18. Matlab工业检测之尘埃统计
  19. 堆栈概念(来自维基)
  20. 技术水平的确很高,正规公司为什么还是不录用这些人(注技术不好的更没戏)

热门文章

  1. malloc函数java_malloc函数详解及用法举例
  2. mysql 民族_56个民族及民族代码的sql语句
  3. 详细叙述网上现有的PS换脸术(附步骤总结)
  4. 大神级ppt作品欣赏_【重磅源文件来了】课程更新2019苹果宣传片PPT福利来袭
  5. Windows命令--wmic
  6. 计算机里一共录入多少个汉字,计算机操作员之汉字输入方法
  7. python爬去新浪微博_Python爬取新浪微博热搜榜
  8. Eplan教程——利用在线帮助系统解读项目检查错误消息
  9. pdf加水印怎么加?五个步骤非常简单
  10. echarts饼状图设置位置