国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C#開發(fā)微信門戶及應(yīng)用(5)--用戶分組信息管理

2019-11-17 03:12:07
字體:
供稿:網(wǎng)友

C#開發(fā)微信門戶及應(yīng)用(5)--用戶分組信息管理

在上個月的對C#開發(fā)微信門戶及應(yīng)用做了介紹,寫過了幾篇的隨筆進行分享,由于時間關(guān)系,間隔了一段時間沒有繼續(xù)寫這個系列的博客了,并不是對這個方面停止了研究,而是繼續(xù)深入探索這方面的技術(shù),為了更好的應(yīng)用起來,專心做好底層的技術(shù)開發(fā)。本篇繼續(xù)上一篇的介紹,主要介紹分組管理方面的開發(fā)應(yīng)用,這篇的內(nèi)容和上一篇,作為一個完整的用戶信息和分組信息管理的組合。

1、用戶分組管理內(nèi)容

用戶分組的引入,主要是方便管理關(guān)注者列表,以及方便向不同的組別發(fā)送消息的操作的,一個公眾賬號,最多支持創(chuàng)建500個分組。

用戶分組管理,包含下面幾個方面的內(nèi)容:

1 創(chuàng)建分組2 查詢所有分組3 查詢用戶所在分組4 修改分組名5 移動用戶分組

微信對于創(chuàng)建分組的定義如下所示。

http請求方式: POST(請使用https協(xié)議)https://api.weixin.QQ.com/cgi-bin/groups/create?access_token=ACCESS_TOKENPOST數(shù)據(jù)格式:jsonPOST數(shù)據(jù)例子:{"group":{"name":"test"}}

正常返回的結(jié)果如下所示。

{    "group": {        "id": 107,         "name": "test"    }}

其他接口,也是類似的方式,通過POST一些參數(shù)進去URL里面,獲取返回的Json數(shù)據(jù)。

前面隨筆定義了GroupJson的實體類信息如下所示。

    /// <summary>    /// 分組信息    /// </summary>    public class GroupJson : BaseJsonResult    {        /// <summary>        /// 分組id,由微信分配        /// </summary>        public int id { get; set; }        /// <summary>        /// 分組名字,UTF8編碼        /// </summary>        public string name { get; set; }    }

根據(jù)以上幾個接口的定義,我定義了幾個接口,并把它們歸納到用戶管理的API接口里面。

        /// <summary>        /// 查詢所有分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <returns></returns>        List<GroupJson> GetGroupList(string accessToken);                               /// <summary>        /// 創(chuàng)建分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="name">分組名稱</param>        /// <returns></returns>        GroupJson CreateGroup(string accessToken, string name);                                /// <summary>        /// 查詢用戶所在分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="openid">用戶的OpenID</param>        /// <returns></returns>        int GetUserGroupId(string accessToken, string openid);                /// <summary>        /// 修改分組名        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="id">分組id,由微信分配</param>        /// <param name="name">分組名字(30個字符以內(nèi))</param>        /// <returns></returns>        CommonResult UpdateGroupName(string accessToken, int id, string name);                               /// <summary>        /// 移動用戶分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="openid">用戶的OpenID</param>        /// <param name="to_groupid">分組id</param>        /// <returns></returns>        CommonResult MoveUserToGroup(string accessToken, string openid, int to_groupid);

2、用戶分組管理接口的實現(xiàn)

2.1 創(chuàng)建用戶分組

為了解析如何實現(xiàn)創(chuàng)建用戶分組的POST數(shù)據(jù)操作,我們來一步步了解創(chuàng)建用戶的具體過程。

首先需要創(chuàng)建一個動態(tài)定義的實體類信息,它包含幾個需要提及的屬性,如下所示。

            string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}", accessToken);            var data = new            {                group = new                {                    name = name                }            };            string postData = data.ToJson();

其中我們把對象轉(zhuǎn)換為合適的Json數(shù)據(jù)操作,放到了擴展方法ToJson里面了,這個主要就是方便把動態(tài)定義的實體類轉(zhuǎn)換Json內(nèi)容,主要就是調(diào)用Json.NET的序列號操作。

        /// <summary>        /// 把對象為json字符串        /// </summary>        /// <param name="obj">待序列號對象</param>        /// <returns></returns>        public static string ToJson(this object obj)        {            return JsonConvert.SerializeObject(obj, Formatting.Indented);        } 

準(zhǔn)備好Post的數(shù)據(jù)后,我們就進一步看看獲取數(shù)據(jù)并轉(zhuǎn)換為合適格式的操作代碼。

            GroupJson group = null;            CreateGrouPResult result = JsonHelper<CreateGroupResult>.ConvertJson(url, postData);            if (result != null)            {                group = result.group;            }

其中POST數(shù)據(jù)并轉(zhuǎn)換為合適格式實體類的操作,放在了ConvertJson方法里面,這個方法的定義如下所示,里面的HttpHelper是我公用類庫的輔助類,主要就是調(diào)用底層的httpWebRequest對象方法,進行數(shù)據(jù)的提交,并獲取返回結(jié)果。

        /// <summary>        /// 轉(zhuǎn)換Json字符串到具體的對象        /// </summary>        /// <param name="url">返回Json數(shù)據(jù)的鏈接地址</param>        /// <param name="postData">POST提交的數(shù)據(jù)</param>        /// <returns></returns>        public static T ConvertJson(string url, string postData)        {            HttpHelper helper = new HttpHelper();            string content = helper.GetHtml(url, postData, true);            VerifyErrorCode(content);            T result = JsonConvert.DeserializeObject<T>(content);            return result;        }

這樣,完整的創(chuàng)建用戶分組的操作函數(shù)如下所示。

        /// <summary>        /// 創(chuàng)建分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="name">分組名稱</param>        /// <returns></returns>        public GroupJson CreateGroup(string accessToken, string name)        {            string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}", accessToken);            var data = new            {                group = new                {                    name = name                }            };            string postData = data.ToJson();            GroupJson group = null;            CreateGroupResult result = JsonHelper<CreateGroupResult>.ConvertJson(url, postData);            if (result != null)            {                group = result.group;            }            return group;        }

2.2 查詢所有分組

查詢所有分組,可以把服務(wù)器上的分組全部獲取下來,也就是每個分組的ID和名稱。

        /// <summary>        /// 查詢所有分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <returns></returns>        public List<GroupJson> GetGroupList(string accessToken)        {            string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/get?access_token={0}", accessToken);            List<GroupJson> list = new List<GroupJson>();            GroupListJsonResult result = JsonHelper<GroupListJsonResult>.ConvertJson(url);            if (result != null && result.groups != null)            {                list.AddRange(result.groups);            }            return list;        }

2.3 查詢用戶所在分組

每個用戶都屬于一個分組,默認(rèn)在 未分組 這個分組里面,我們可以通過API獲取用戶的分組信息,也就是獲取所在用戶分組的ID。

        /// <summary>        /// 查詢用戶所在分組        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="openid">用戶的OpenID</param>        /// <returns></returns>        public int GetUserGroupId(string accessToken, string openid)        {            string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}", accessToken);            var data = new            {                openid = openid            };            string postData = data.ToJson();            int groupId = -1;            GroupIdJsonResult result = JsonHelper<GroupIdJsonResult>.ConvertJson(url, postData);            if (result != null)            {                groupId = result.groupid;            }            return groupId;        }

2.4 修改分組名稱

也可以在實際中,調(diào)整用戶所在的分組,操作代碼如下。

        /// <summary>        /// 修改分組名        /// </summary>        /// <param name="accessToken">調(diào)用接口憑證</param>        /// <param name="id">分組id,由微信分配</param>        /// <param name="name">分組名字(30個字符以內(nèi))</param>        /// <returns></returns>        public CommonResult UpdateGroupName(string accessToken, int id, string name)        {            string url = string.Format("https://api.weixin.qq.com/cgi-bin/groups/update?access_token={0}", accessToken);            var data = new            {                group = new                {                    id = id,                    name = name                }            };
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 莲花县| 莱州市| 嘉定区| 浦东新区| 淮北市| 伊春市| 治多县| 神木县| 芦山县| 三江| 大安市| 嘉荫县| 镇巴县| 巩义市| 拜泉县| 凤冈县| 富阳市| 中方县| 屯昌县| 防城港市| 沛县| 保亭| 呼和浩特市| 万载县| 昌江| 泰和县| 怀集县| 扎囊县| 华亭县| 宁远县| 万载县| 乐业县| 仪陇县| 达日县| 乳源| 当阳市| 汉川市| 梁河县| 天水市| 彭阳县| 洪湖市|