• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信公众号 > C#开发微信门户及应用微信企业号的通讯录管理开发之部门管理

C#开发微信门户及应用微信企业号的通讯录管理开发之部门管理

作者:匿名 字体:[增加 减小] 来源:互联网

匿名通过本文主要向大家介绍了C# 微信开发等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
前面一篇随笔企业号的一些基础信息,以及介绍如何配置企业号的回调方式实现和企业号服务器进行沟通的桥梁。本篇主要还是继续介绍企业号的开发工作的开展,介绍微信企业号通讯录管理开发功能,介绍其中组织机构里面如何获取和管理部门的信息等内容。

1、企业组织的创建和配置

首先我们可以在企业号的管理后台里面创建一个组织机构,里面创建一些部门和人员列表,方便我们开发和使用。

例如创建一个广州爱奇迪的根结构,然后在其中在创建一些组织机构,如下图所示。

C#开发微信门户及应用微信企业号的通讯录管理开发之部门管理

然后给组织结构根节点“广州爱奇迪”增加一个管理员权限,以后再开发接口里面也就可以使用这个管理员所属的权限Secret值进行调用了。

C#开发微信门户及应用微信企业号的通讯录管理开发之部门管理

CorpID是企业号的标识,每个企业号拥有一个唯一的CorpID;Secret是管理组凭证密钥。
系统管理员可通过管理端的权限管理功能创建管理组,分配管理组对应用、通讯录、接口的访问权限。完成后,管理组即可获得唯一的secret。系统管理员可通过权限管理查看所有管理组的secret,其他管理员可通过设置中的开发者凭据查看。

我的企业号的创建者和“广州爱奇迪”组织结构的管理员是不同的,由于Secret是管理组凭证密钥,因此管理者负责不同的组织机构管理的话,自己的管理Secret值可能就不同了。如果我们需要调用接口,就需要用到这个属于自己权限级别的Secret值,如下图所示。

C#开发微信门户及应用微信企业号的通讯录管理开发之部门管理

如果不是企业号的创建者,那么可能不能修改里面的一些权限分配,只能查看。

C#开发微信门户及应用微信企业号的通讯录管理开发之部门管理

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("http:///{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");            
            return token;
        }


微信企业号的说明如下所示:

当企业应用调用企业号接口时,企业号后台为根据此次访问的AccessToken,校验访问的合法性以及所对应的管理组的管理权限以返回相应的结果。

注:你应该审慎配置管理组的权限,够用即好,权限过大会增加误操作可能性及信息安全隐患。

AccessToken是企业号的全局唯一票据,调用接口时需携带AccessToken。AccessToken需要用CorpID和Secret来换取,不同的Secret会返回不同的AccessToken。正常情况下AccessToken有效期为7200秒,有效期内重复获取返回相同结果,并自动续期。由于获取access_token的api调用次数非常有限,建议企业全局存储与更新access_token,频繁刷新access_token会导致api调用受限,影响自身业务。

2、通讯录管理之部门信息的维护

有了第一节里面的访问票据,我们就可以利用API来做很多事情了,包括组织结构的获取、创建、删除等等功能。

创建部门的官方接口定义如下所示。

  • 请求说明

Https请求方式: POST

https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token=ACCESS_TOKEN

请求包结构体为:

{
   "name": "邮箱产品组",
   "parentid": "1"
}
  • 参数说明

参数必须说明
access_token是调用接口凭证
name是部门名称。长度限制为1~64个字符
parentid是父亲部门id。根部门id为1

  • 返回结果

{
   "errcode": 0,
   "errmsg": "created",
   "id": 2
}

根据上面的一些类似的接口定义说明,我们先来定义下组织机构部门数据的维护接口,然后在逐步实现和调用。


        #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 = "http:///{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);            return result;
        }


CorpDeptCreateJson 对象实体类的定义如下所示,我们主要是根据返回结果进行定义的。


    /// <summary>
    /// 创建部门的返回结果    /// </summary>
    public class CorpDeptCreateJson : BaseJsonResult
    {        /// <summary>
        /// 返回的错误消息        /// </summary>
        public CorpReturnCode errcode { get; set; }        /// <summary>



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 微信开发值得推荐的开源项目
  • 微信端开发之如何登录小程序
  • 微信支付统一下单,用PHP怎么实现?(代码全)
  • .NET 微信开发自动内容回复实例代码
  • 微信开发之springmvc mybatis项目结构搭建的java代码详解
  • 什么是微信认证?微信认证使用方法总结
  • C#微信开发之微信公众号标签管理功能
  • 微信支付开发之沙箱密钥步骤详解
  • 微信支付开发-Senparc.Weixin.MP详解
  • 微信公众平台SDK过程详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信开发获取access_token
    • 微信网页开发之概要说明
    • 微信公众平台消息接口开发地理位置查询附近商家实例
    • PHP微信开发之微信消息自动回复遇到的问题
    • 基于H5的微信支付开发详解
    • 报错config:invalid signature的解决方案
    • 容器组件函数定义与用法汇总
    • 微信开发之springmvc mybatis项目结构搭建的java代码详解
    • 微信公众号开发配置常见错误信息汇总
    • 关于跑步的详细介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有