我们知道,微信公众号和企业号都提供了一个官方的Web后台,方便我们对微信账号的配置,以及相关数据的管理功能,对于微信企业号来说,有通讯录中的组织架构管理、标签管理、人员管理、以及消息的发送等功能,其中微信企业号的组织架构和标签可以添加相应的人员,消息发送可以包含文本、图片、语音、视频、图文、文件等内容。对于企业号来说,官方的接口几乎可以无限的发送消息,因此构建一个管理后台,管理企业号的人员,以及用来给企业成员发送消息就是一个很好的功能亮点,有时候可以提高我们企业内部的消息通讯效率和日常工作管理效率。本文探索基于Winform的客户端方式来实现这些功能操作。
我们知道,微信(包括公众号、企业号等)的服务器架起了客户手机和开发者服务器的一个桥梁,通过消息的传递和响应,实现了与用户的交互操作,下面是它的消息流程图。
因此,在使用自己部署的微信网站系统前,需要登陆微信官方后台初始化一些信息,并获取对应的参数设置,通过这些参数信息,在自己的网站系统中进行配置,才能构建一个完整的链路,实现消息的传递和响应。
当我们配置好【开发者服务器】的服务和【微信服务器】的对接后,我们也就实现了基本的消息交互过程了。这样我们就可以配置好企业号客户端进行使用了。
1)网站系统参数配置
我们为了实现消息的链路,需要在网站系统里面配置好相应的参数,这样我们才能把微信官方后台的回调模式完成。
首先登陆我们自己【开发服务器】上的微信企业后台管理。
为企业号账号配置好相关的参数信息。
结合微信服务器上的回调处理操作,完成整个网站参数的配置操作。
2)企业号客户端参数配置
在微信企业号客户端功能使用前,需要在【参数配置】里面配置好对应的参数信息,这样才能正确和微信后台进行通讯,获取服务器上的数据。
而上面客户端软件对话框的参数,除了需要回调设置里面的部分参数外,还需要结合微信后台的一些其他参数,这样我们才能配置好和微信服务器的对接操作。
CorpID:唯一标识企业号:企业号开通后即拥有一个CorpID,不同企业号的CorpID是不同的,这相当于企业号的身份标识;启动开发接入时候,企业开发者必须先用CorpID和Secret来换取Access_Token,之后才能调用企业号相关接口。
Secret:管理组凭证密钥,系统管理员在企业号管理后台创建管理组时,企业号后台为该管理组分配一个唯一的secret。通过该secret能够确定管理组,及管理组所拥有的对应用、通讯录、接口的访问权限。
我在随笔《C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理》里面介绍了企业号组织机构的管理操作。
默认我们可以在后台先创建一个根节点,然后在这个节点上进行处理即可。
介绍了那么多,好像还没有展现这个企业号Winform客户端的界面功能,这儿软件主要也就是利用来进行常规化的一些数据操作,不过是直接调用微信企业号API的功能而已,这些API就是前面系列介绍的接口实现。
下面是企业号Winform客户端的界面,这个主要利用我传统样式的Winform结构来处理,实现多文档的操作界面。
【组织机构列表】管理模块里面,会在树状列表里面列出相关的通讯录组织结构,选择不同的组织层次,可以列出所属的对应人员,界面如下所示。
通过上面的红色框的功能操作,我们可以看到组织机构的相关功能点,包括有新建子部门、删除部门、修改部门,以及为部门实现的人员管理:添加成员、删除成员、修改成员、移动成员、禁用或者启用人员等功能,而左侧部门的列表通过树形列表进行展现,这些操作全部是直接调用API进行处理的,提交后的结果直接能够在企业号后台及时看到。
这些功能点,都是模仿企业号后台的功能点实现,不过是基于Winform的方式,能够结合本地的数据处理,实现更加丰富的界面和数据管理。
添加成员,则提供一个输入界面给用户填写对应的信息,功能实现的界面如下所示。
如果是移动成员,那么会弹出一个部门列表,供用户选择需要移动到具体的部门里面,确认后就进行移动处理。
【标签列表】管理模块里面,在左边的树状列表里面列出所有的可见标签,如果标签下面有对应的部门组织或者人员,那么会在列表里面列出,具体界面如下所示。
该模块包含的功能操作有:新建标签、删除标签、修改标签;添加标签成员、删除标签成员等操作。
标签的管理很简单,主要是维护一个类似组别的概念,我们可以新建、修改或者删除对应的标签。
同时我们也可以为标签添加对应的部门、人员集合,添加标签成员操作具体如下所示。
【发送消息】功能模块,是可以选择发送对象,包括组织机构、标签、人员都可以选择;而消息的发送内容,包括有文字、图片、语音、视频、图文、文件等内容。
而选择人员是提供一个多功能的选择界面,包括可以选择部门、标签、人员,最后可以通过【完成选择】返回选择的对象。
选择对象并录入对应的发送内容后,单击【发送】进行消息的发送处理,就可以在对应的成员手机上查看到最新的消息了,下面是一个接受到图片、文字的企业号界面。
其他如视频、语音等内容都要求上传到服务器后在发送,发送处理操作一样,不在赘述。
如果对这个《C#开发微信门户及应用》系列感兴趣,可以关注我的其他文章,系列随笔如下所示:
C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试
C#开发微信门户及应用(21)-微信企业号的消息和事件的接收处理及解密
C#开发微信门户及应用(19)-微信企业号的消息发送(文本、图片、文件、语音、视频、图文消息等)
C#开发微信门户及应用(18)-微信企业号的通讯录管理开发之成员管理
C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理
C#开发微信门户及应用(15)-微信菜单增加扫一扫、发图片、发地理位置功能
C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据
C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍
C#开发微信门户及应用(10)--在管理系统中同步微信用户分组信息
C#开发微信门户及应用(9)-微信门户菜单管理及提交到微信服务器
原文:http://www.cnblogs.com/wuhuacong/p/4442683.html