微信企业平台号开发 如何实现智能回复功能:

C#开发微信门户及应用(17)-微信企业号的通讯录管理开发之部门管理 - 伍华聪 - 博客园
随笔 - 384, 文章 - 20, 评论 - 5835, 引用 - 20
&前面一篇随笔企业号的一些基础信息,以及介绍如何配置企业号的回调方式实现和企业号服务器进行沟通的桥梁。本篇主要还是继续介绍企业号的开发工作的开展,介绍微信企业号通讯录管理开发功能,介绍其中组织机构里面如何获取和管理部门的信息等内容。
&1、企业组织的创建和配置
首先我们可以在企业号的管理后台里面创建一个组织机构,里面创建一些部门和人员列表,方便我们开发和使用。
例如创建一个广州爱奇迪的根结构,然后在其中在创建一些组织机构,如下图所示。
然后给组织结构根节点&广州爱奇迪&增加一个管理员权限,以后再开发接口里面也就可以使用这个管理员所属的权限Secret值进行调用了。
CorpID是企业号的标识,每个企业号拥有一个唯一的CorpID;Secret是管理组凭证密钥。系统管理员可通过管理端的权限管理功能创建管理组,分配管理组对应用、通讯录、接口的访问权限。完成后,管理组即可获得唯一的secret。系统管理员可通过权限管理查看所有管理组的secret,其他管理员可通过设置中的开发者凭据查看。
我的企业号的创建者和&广州爱奇迪&组织结构的管理员是不同的,由于Secret是管理组凭证密钥,因此管理者负责不同的组织机构管理的话,自己的管理Secret值可能就不同了。如果我们需要调用接口,就需要用到这个属于自己权限级别的Secret值,如下图所示。
&如果不是企业号的创建者,那么可能不能修改里面的一些权限分配,只能查看。
2、API访问的全局唯一票据AccessToken的获取
和公众号一样,我们调用企业号API的第一步也是需要先获取访问的票据AccessToken。这个票据是全局性的,有一定的时效和频率控制,因此需要适当的进行缓存,不能每次调用都去刷新获取。
企业号获取访问票据的主要的逻辑代码如下所示,其主要的就是需要使用管理者的Secret值去获取对应的口令,这样它就能够知道管理的是那个组织结构的了。
/// &summary&
/// 获取每次操作微信API的Token访问令牌
/// &/summary&
/// &param name="corpid"&企业Id&/param&
/// &param name="corpsecret"&管理组的凭证密钥&/param&
/// &returns&&/returns&
public string GetAccessTokenNoCache(string corpid, string corpsecret)
var url = string.Format("https://qyapi./cgi-bin/gettoken?corpid={0}&corpsecret={1}",
corpid, corpsecret);
HttpHelper helper = new HttpHelper();
string result = helper.GetHtml(url);
string regex = "\"access_token\":\"(?&token&.*?)\"";
string token = CRegex.GetText(result, regex, "token");
微信企业号的说明如下所示:
当企业应用调用企业号接口时,企业号后台为根据此次访问的AccessToken,校验访问的合法性以及所对应的管理组的管理权限以返回相应的结果。
注:你应该审慎配置管理组的权限,够用即好,权限过大会增加误操作可能性及信息安全隐患。
AccessToken是企业号的全局唯一票据,调用接口时需携带AccessToken。AccessToken需要用和来换取,不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。由于获取access_token的api调用次数非常有限,建议企业全局存储与更新access_token,频繁刷新access_token会导致api调用受限,影响自身业务。
2、通讯录管理之部门信息的维护
有了第一节里面的访问票据,我们就可以利用API来做很多事情了,包括组织结构的获取、创建、删除等等功能。
创建部门的官方接口定义如下所示。
Https请求方式: POST
请求包结构体为:
"name": "邮箱产品组",
"parentid": "1"
参数必须说明
access_token
调用接口凭证
部门名称。长度限制为1~64个字符
父亲部门id。根部门id为1
"errcode": 0,
"errmsg": "created",
根据上面的一些类似的接口定义说明,我们先来定义下组织机构部门数据的维护接口,然后在逐步实现和调用。
#region 部门管理
/// &summary&
/// 创建部门。
/// 管理员须拥有&操作通讯录&的接口权限,以及父部门的管理权限。
/// &/summary&
CorpDeptCreateJson CreateDept(string accessToken, string name, string parentId);
/// &summary&
/// 更新部门。
/// 管理员须拥有&操作通讯录&的接口权限,以及该部门的管理权限。
/// &/summary&
CommonResult DeleteDept(string accessToken, int id);
/// &summary&
/// 删除部门.
/// 管理员须拥有&操作通讯录&的接口权限,以及该部门的管理权限。
/// &/summary&
CorpDeptListJson ListDept(string accessToken);
/// &summary&
/// 获取部门列表.
/// 管理员须拥有&获取部门列表&的接口权限,以及对部门的查看权限。
/// &/summary&
CommonResult UpdateDept(string accessToken, int id, string name);
#endregion
如创建部门的接口实现如下所示,主要就是构建URL和POST的数据包,然后统一调用并获取返回数据,转换为具体的Json对象实体即可。其他接口的实现方式类似,不在赘述。
/// &summary&
/// 创建部门。
/// 管理员须拥有&操作通讯录&的接口权限,以及父部门的管理权限。
/// &/summary&
public CorpDeptCreateJson CreateDept(string accessToken, string name, string parentId)
string urlFormat = "https://qyapi./cgi-bin/department/create?access_token={0}";
var data = new
name = name,
parentId = parentId
var url = string.Format(urlFormat, accessToken);
var postData = data.ToJson();
CorpDeptCreateJson result = CorpJsonHelper&CorpDeptCreateJson&.ConvertJson(url, postData);
CorpDeptCreateJson 对象实体类的定义如下所示,我们主要是根据返回结果进行定义的。
/// &summary&
/// 创建部门的返回结果
/// &/summary&
public class CorpDeptCreateJson : BaseJsonResult
/// &summary&
/// 返回的错误消息
/// &/summary&
public CorpReturnCode errcode { get; set; }
/// &summary&
/// 对返回码的文本描述内容
/// &/summary&
public string errmsg { get; set; }
/// &summary&
/// 创建的部门id。
/// &/summary&
public int id { get; set; }
&3、部门管理的API调用
&上面小节介绍了如何封装部门管理的API,那么我们封装好了对应的接口和接口实现,怎么样在实际环境里面进行调用处理的呢,为了方便我创建一个小的Winform程序来测试对应API的功能,如下所示。
下面我们来介绍一下调用的代码和效果展示。
private void btnCreateDeleteDept_Click(object sender, EventArgs e)
ICorpAddressBookApi bll = new CorpAddressBookApi();
string name = "测试部门";
CorpDeptCreateJson json = bll.CreateDept(token, name, "2");
if (json != null)
Console.WriteLine("创建了部门:{0}, ID:{1}", name, json.id);
//更新部门信息
name = "测试部门修改名称";
CommonResult result = bll.UpdateDept(token, json.id, name);
if(result != null)
Console.WriteLine("修改部门名称:{0} {1}", (result.Success ? "成功" : "失败"), result.ErrorMessage);
//删除部门
result = bll.DeleteDept(token, json.id);
if (result != null)
Console.WriteLine("删除部门名称:{0} {1}", (result.Success ? "成功" : "失败"), result.ErrorMessage);
/// &summary&
/// 获取部门列表
/// &/summary&
private void btnListDept_Click(object sender, EventArgs e)
ICorpAddressBookApi bll = new CorpAddressBookApi();
CorpDeptListJson list = bll.ListDept(token);
foreach (CorpDeptJson info in list.department)
string tips = string.Format("{0}:{1}", info.name, info.id);
Console.WriteLine(tips);
如果对这个《C#开发微信门户及应用》系列感兴趣,可以关注我的其他文章,系列随笔如下所示:微信企业号的价值
欢迎你加入马友会,马友会是由老马粉丝组成的一个社群组织。在这里,你不仅可以学习,还可以合作,更多干货也将在这里分享。来吧,请在本公众帐号的菜单点击“马友会”,或者回复关键词“马友会”申请加入吧,一万个小伙伴就差你了!
今天有粉丝让老马谈谈微信企业号,怎么理解上下游供应链连接的问题。前段时间公测信息一发布,网上已经有不少关于微信企业号的解读。而且,部分第三方平台也已经推出了微信企业号的云应用服务。当然,不少原来做移动OA产品的第三方效率是最高的,他们在原有产品的基础能够快速出开发出基于微信企业号的功能,应该说对于中小企业来讲,抛弃掉现有的OA系统,转向以微信企业号为卖点的新系统,着实需要点勇气和时间。
下面,老马将从企业和第三方两个角度分别谈谈自己的看法。随着移动办公需求的不断增长,微信企业号全平台的应用服务还是很有诱惑力的。不需要下载APP,打开关注个微信企业号,就能够随时随地办公,更重要的是你不再需要烦恼像APP那样需要不断更新的问题。当然,现在不少APP也采用了Web APP的开发模式,但安装一个APP的感觉始终不如关注一个微信企业号来得舒服,这是老马的个人感觉。
微信企业号最基本的还是OA功能,比如企业内部的管理,员工之间的协作,上下游供应链之间的衔接。这里的上下游供应链的衔接,其实有半自动和全自动之分。所谓的半自动,可以理解为利用微信企业号来获取一线所需资源的信息,然后由总部来进行采购分发。比如微信企业号案例中的日日顺公司,他们的业务员微助手就是一个订货功能,把需要的产品及数量通过微信企业号进行上报,再交由总部审批后转向ERP系统下发给供应商,然后由供应商发货。
而全自动则可以理解为日日顺原本的内部ERP系统已经和微信企业号对接上了,那么微信企业号所提交的信息则会同步到内部的ERP系统中,经总部审批后,供应商直接收到订货信息,进而走发货流程。这里面最大的区别就在于是否跟原有企业内部IT系统进行对接的问题,如果对接了,微信企业号的信息传递就是顺畅的。
所以,微信企业号与上下游供应链之间的连接,关键还是看企业在申请了微信企业号之后,能否进一步把内部的IT系统与微信企业号对接起来。如果不能,那么微信企业号顶多算是一个OA系统。当然,现在不少OA系统中也已经集成了CRM应用功能,所以客户关系管理在微信企业号上实现的问题不大。只不过,这种CRM还是比较封闭的,不像SCRM。老马认为,企业刚接触移动办公时利用微信企业号是低成本且高效的,毕竟不需要像传统企业内部搭建一个OA系统那样子,购买软件和服务器的成本一般都高于在第三方平台购买微信企业号的应用产品服务。
此外,原来企业搭建的传统OA系统大多都是基于内网的,虽然有单独的通道方便企业员工进入系统进行办公,但无法实现覆盖PC、平板、智能手机全设备平台,操作上还是比较麻烦。举个例子,一线员工小黄被总部派去山东市场考察,小黄通过手机收集了不少照片资料,但是不能直接用手机将照片资料传回总部。只能是回到酒店之后,打开电脑进入企业的OA系统后再进行上传,既费时又费力。
微信企业号可供开发的应用功能还是挺多的,比如打卡签到、流程管理、公文管理等。但不同企业的办公需求是有一定差异的,目前市面上大多第三方平台所提供的微信企业号应用功能,也基本是属于行业通用版本。行业通用版本毕竟是通用的,基本的应用功能可能是大多数企业都会用到的,比如上面提到的那几个功能。
当然,企业也能够根据自己的需求进行定制开发。比如我们在微信企业号官方网站看到的那几个案例中,美宜佳的微信企业号里面的大多数应用功能就是定制开发的。损耗控制、商品陈列、门店形象等功能与美宜佳一线员工的需求很贴切,一般来说中大型的企业或多或少都需要进行定制开发,特别是跟企业原有IT系统进行数据对接。一般的小企业和小微企业使用第三方平台所提供的通用版应用功能就足够了,款且大部分这种体量的企业内部也存在没有OA系统的情况,ERP系统更没必要。
下面说说第三方吧,怎么说呢,这行现在基本就是几个有钱,体量还行的体验在吆喝着。中小体量的都生存得很困难,更别提那些草根了,分分钟死掉的节奏。因此,老马也不大看好微信企业号能够给这个行业带来什么福利。老大们把微信企业号的通用功能开发出来了,江湖上的小草根和开发者们就捣腾着复制。若是再出来几个像小猪CMS这样的脑残公司,那么很快市面上又会兴起一股以微信企业号为卖点的平台之风。抄袭战与价格战并演,有人哭有人笑有人狂。
然后就是菜市场里卖泡脚凤爪的老王发现生意不好做了,看微信挺火的也想投资一把。索性转型开了家贸易公司,买了套源代码搭了个微信企业号第三方应用服务平台。老王还特意去市里的批发市场采购了一批QQ企鹅公仔,以便上门拜访客户的时候带上。当在客户面前说自己是腾讯公司的或是战略合作伙伴时,老王弯腰拱手地把QQ企鹅公仔递上送给客户,好让客户相信自己的实力,赶紧麻溜地把合同签了。呵呵,最后总结一句。一入此行深似海,从此节操是路人!文/马佳彬 (欢迎转载或分享到朋友圈,转载请注明出处,否则轻者追究举报,重者不孕不育)因公司业务发展需要,老马现诚寻天使投资人深度合作,有意请直接在公众帐号给老马留言,老马会与你联系对接,当然也可以加老马的个人微信号:imjiabin(非直接投资人或中介勿扰) 。【老马的公司是一家企业微信营销全案服务公司,如果您有需求,请致电:020-】
Submit Comment
扫描二维码关注
马佳彬微信自媒体公众账号,欢迎大家关注.坚持实干与理论相结合,专注于微信营销和网络营销,偶尔吐槽下创业、管理、传媒、IT、营销等.愿以分享所学之识广交天下好友!
无限135是一个收录微信公众号,提供公众号运营工具,图文美化135编辑器,以及微信文章的整合阅读。如果您有什么需求意见或建议,欢迎反馈给我们。微信135导航正式更名为无限135Post: 20:31:14
微信这是要进军办公领域?
Post: 10:19:41
谢谢松哥的分享
Post: 9:52:57
微信不仅进入我们的生活,还要进入我们的工作
Post: 15:42:04
让工作远离微信。
Post: 14:54:39
一个OA还是得有比较丰富甚至针对企业自身情况的一些功能。
Post: 13:40:03
又有还玩的东西啦 呵呵
Post: 15:10:54
只有这些功能也太简单了一些,一个OA还是得有比较丰富甚至针对企业自身情况的一些功能。【红博客】-关注中小企业及创业
Post: 11:32:26
新玩法啊 这是。
Post: 10:24:23
没有听说过。
Post: 10:16:36
虾米啊,有开个这玩意。。
Post: 10:14:51
是和企业QQ一样,换一种玩法吗?
Post: 10:08:10
又可以圈钱了,呼呼呼。。。
Post: 10:07:51
可以先尝试一下试试
Post: 9:44:13
企业暂时不会尝试吧,这个可能性太小了
Post: 9:35:39
微信企业号,二次开发者的福音又来了
Post: 9:16:18
没有体验过,但从介绍上来说,觉得不靠谱!
Post: 8:47:54
微信要逆天了
Post: 8:44:36
机会来了,企业说不定又是一个影响渠道!
Post: 8:44:30
现在很多员工都不喜欢用自己的微信去加公司的微信公众号了
Post: 6:28:43
微信这次测试完之后定位会越来越清晰
Post: 1:29:23
这个要支持一下啊,先测测再说
Post: 1:23:27
感觉好牛逼
Post: 0:10:26
速度~ 之前只是听说……
Post: 23:51:46
这个牛逼啊,注册一个去
Post: 23:38:10
消息很快。不过毕竟是公测阶段,存在的问题还是挺多的。
Post: 23:37:13
微信感觉订阅号 和企业号功能都差不多了,企业都没消化,来个企业号,都让企业都不知道用哪个了,我是做百度快速优化的,有需要的可以联系!
【相关文章】 9:22:44 15:14:11 8:28:36 12:33:55 23:14:17 11:44:55 16:37:48 13:52:53 16:11:51 13:14:26
本月最热文章
本年最热文章【行业新闻】千呼万唤微信企业号发布公测 毁坏时代已来哪些行业会被颠覆?
| 北京富基融通科技有限公司
&服务热线:400-665-2288&&&
提交服务需求
订阅《富基商业评论》
杂志合作洽谈
您现在的位置:首页 》新闻中心 》
&&新闻中心
【行业新闻】千呼万唤微信企业号发布公测 毁坏时代已来哪些行业会被颠覆?
&&&&&&&&访问次数:109
&&&&&&& 早前小编发布关于微信企业号报道的时候,受到过很多的质疑,也收到过腾迅的警告,微信企业号原定本月15号发布,也改成18号发布公测版,首批开放50个注册号,我想得到消息的用户想要体验一下微信企业号的神奇基本没戏,50个注册号对于万众期待的弄潮者而言,简直是沧海一粟。不过至此开始,微信将逐步开放正式版,也开启微信企业颠覆时代的来临。那么哪些行业会受到微信企业号的冲击?
&&&&&&& ​
&&&&&&& 第一、 服务号是否会退出历史舞台
&&&&&&& ​前两天跟内行的朋友聊天,就谈到过微信企业号会革掉自已的命,第一个中枪的就是微信苦心经营的微信服务号,因为微信服务号推送消息的限制,加上接口能力偏弱,微信服务号在具有强大接口和开发能力架构的微信企业号面前将逐步被产业链上的商家抛弃。​但以小编之见,微信企业号不会颠覆掉自身的服务号,随着企业号的发布,服务号在一些弱势能力上得到改善,另外,企业号专注企业的内部协作管理,服务号专注企业外部交流营销服务,一个是用于内部自有原员工,外部人员关注企业号将会造成企业管理的混乱,一个是用于外部用户服务在企业号之外的产业链用户,服务号和企业号强强联手的话,将实现内外的结合,所以服务号不会终结而会成为企业号的一个补充。
&&&&&&& ​第二、 微信企业号已变成移动前端中间件
&&&&&&& ​为什么说这么说?微信企业号有效的解决多终端多OS的问题,一次开发处处运行,这个理念一直被移动开发平台厂商津津乐道,而微信企业号也同样具备这种能力,以往很多企业CIO跟T哥聊天提到企业移动化开发困惑最多的就是移动开发。多数企业移动化开发模式有几种,原生开发,Html5开发,移动中间件开发,而这几种开发模式都或多或少存在这样和那样的问题。​原生开发需要储备两套开发人员,一套是基本安卓的,一套是基于苹果的,每个企业移动应用一套代码都需要开发两次,而如果企业的移动应用更新频繁或功能繁多的话,那么原生开发就是致命的,每一次的改造和升级对企业CIO而言都是一个催残。万一再有第三种移动OS成为主流的话,那么原生开发无疑是一种负担。
&&&&&&& ​Html5开发虽然具备跨平台跨终端的能力,但是移动浏览器各自为政,不同的移动终端,不同的浏览器,甚至不同的操作系统,移动应用的体验都会有所不同,特别是在苹果端html5的用户体验奇差无比,这也决定了Html5走入企业尚需时日,什么时候Html5在标准上实现统一,那样Html5的企业级市场即将来临。
&&&&&&& ​移动中间件平台开发,这也是目前企业级市场主流的开发模式,可以实现一次代码处处运行,解决多终端多OS的问题,在加上EMM的能力形成MEAP,将实现的企业移动应用从开发,到应用,到运营全生命周期的管理。但是移动中间件平台也有一个致命硬伤,因为中间件里面封装了大量的引擎,在效率上与原生和Html5上会大打折扣,另外在智能分析图表的展现上,移动中间件控件太少,在一些特殊需求能力上会受到限制。
&&&&&&& ​但是不是微信企业号就一定能颠覆上述三种模式呢?T哥解读是完全不会,微信企业号无法私有化部署,安全问题一直是企业的最大的顾虑,这也成为微信企业号无法真正意义上的打入企业内部。​另外,在企业规模上也会有一些限制,比如一些大中型集团企业会因为安全问题,将一些非敏感的应用放在微信端,而核心业务不会选择企业微信号,因此T哥推断,微信企业号将助推企业移动化进程,企业移动化时代也随即迎来黄金时代。​
&&&&&&& 第三、 OA和CRM厂商压力山大
&&&&&&& 微信在企业应用场景上有了全新的突破,适于员工出差移动办公,也适于企业上下游合作伙伴,供应商的订单管理,同样对于一线销售、行销代理、售后服务、巡检巡店、安保后勤人员的工作管理与支撑,以及政府机关、学校医院等事业单位社会组织简化管理流程,提升组织协同运作效率。​
&&&&&&& 综合来看,微信企业号对企业创造价值和优势重点体现三个层面,一是企业应用的移动化,实现快速移动化办公,二是直接与企业原有IT系统对接,开发成本低,为企业节约成本;三是与微信现有的使用体验保持一致,快速部署。​
&&&&&&& 从这几个场景来看,微信的确有冲击OA和CRM厂商的意味,因为OA和CRM在数据上并非企业的核心,用户也不会因为安全问题放弃微信企业号,另外OA和CRM是企业目前布署最多的企业应用,很多厂商都提供了自家的OA移动版本,但是别忘了微信可直接将现有的IT系统接入微信企业号,可以实现企业的快速移动化,他不仅可以嫁接你的OA也能嫁接别人的CRM,一个标准的企业移动办公门户可以在微信端实现,你认为他颠覆你的机会有多大?如果不想被颠覆,就去跟随和接纳,如果你不做,自然会有一批附在企业微信解决方案的第三方伙伴来做,所以抵抗是无用那就去拥抱吧。
&&&&&&& ​第四、专注微信企业移动解决方案团队迎来良机
&&&&&&& ​上周小编从广州、珠海出差,发现有很多微信企业号的开发团体,他们没有OA、CRM等具体业务,他们主要专注于企业移动化在微信企业号的功能实现。因为微信企业号的技术架构相当具有侵略性,在开发接口方面,微信企业号提供了完备的能力,逐步开发微信原生能力,实现端到端全流程的闭环管理。例如:通讯录支持对部门、成员、标签的增删改查,消息的收发接口可以发送或接收文字、语音、视频、图文、文件等各类型消息,除消息发送条数不受限外,还能对消息安全设置,确保消息的安全和私密。
&&&&&&& ​此外,微信企业号还可以使用微信原生的拍照、扫码、上传地理位置、开放平台的语音识别、图像识别的接口与服务、微信支付、企业红包接口等功能。而这些原生功能的开放也让企业移动化有了更多想象的空间和可能,专注微信企业移动解决方案的厂商来说无疑如鱼得水。
&&&&&&& ​总而言之,微信企业号来了他不再是传言而是实实在在的来了,BAT跨越了企业级市场的边界线,也证实了我4月份的时候预测,小编也终于洗白了一回不再是传言的制造者,另外,微信的毁坏时代已来,为什么小编称为毁坏,他一定会毁坏很多厂商的此前构想和产品设计,但他也会创造另一个世界,这就是企业微信号的毁坏,另外小编也总结了一句话就是企业移动互联网代未来已来。​
&&&&&&& ​(来源:人称T客)
富基商业评论
京ICP备号-1

我要回帖

更多关于 微信企业号二次开发 的文章

 

随机推荐