程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#微信開發之微信公眾號標簽管理功能

C#微信開發之微信公眾號標簽管理功能

編輯:關於C語言

微信公眾號,仿照企業號的思路,增加了標簽管理的功能,對關注的粉絲可以設置標簽管理,實現更加方便的分組管理功能。開發者可以使用用戶標簽管理的相關接口,實現對公眾號的標簽進行創建、查詢、修改、刪除等操作,也可以對用戶進行打標簽、取消標簽等操作。本篇隨筆主要介紹如何利用C#對公眾號這個較新的特性進行封裝,實現對標簽的管理功能。

1、標簽功能介紹

1)標簽功能替代分組功能,支持多維度定義用戶屬性

運營者可登錄公眾平台後台,點擊左側菜單“用戶管理”後管理已關注用戶,點擊其中一個用戶右側的“標簽”小角標可彈出復選框快速為該用戶添加標簽,且添加標簽復選框內已支持直接新建標簽。

另外,標簽功能接口也已更新,開發者可調用接口,實現對標簽和用戶操作。同時,高級群發接口和個性化菜單接口等已支持根據標簽實現操作。

2)優化用戶卡片,支持多場景查看用戶頭像大圖與互動數據,增強運營者對用戶熟悉度與管理效率

本期新增消息數、留言數和贊賞數等互動數據,且顯示用戶關注時間和支持查看用戶頭像大圖,有利於拉近運營者與用戶的距離。另外, 支持“贊賞功能”和“留言管理”場景直接管理用戶,提升管理效率。

2、標簽的接口封裝

標簽的接口分為兩部分:標簽管理和用戶管理,一個公眾號,最多可以創建100個標簽。標簽功能目前支持公眾號為用戶打上最多三個標簽。

其中標簽管理包括:

1) 創建標簽 2)獲取公眾號已創建的標簽 3)編輯標簽 4)刪除標簽 5)獲取標簽下粉絲列表

標簽的用戶管理包括:

1)批量為用戶打標簽 2)批量為用戶取消標簽 3)獲取用戶身上的標簽列表

下面分別為幾種接口封裝進行相關的介紹。

首先按照常規的方式 ,我們定義好相關的接口和實現關系,如下圖所示。

根據相關的接口說明,我們可以實現標簽接口的定義,C#代碼如下所示。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 /// <summary> /// 微信標簽管理的API接口 /// 開發者可以使用用戶標簽管理的相關接口,實現對公眾號的標簽進行創建、查詢、修改、刪除等操作,也可以對用戶進行打標簽、取消標簽等操作。 /// </summary> public interface ITagApi { /// <summary> /// 創建標簽 /// 一個公眾號,最多可以創建100個標簽。 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="name">標簽名(30個字符以內)</param> /// <returns></returns> TagJSon CreateTag(string AccessToken, string name); /// <summary> /// 獲取公眾號已創建的標簽 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <returns></returns> List<TagCountJSon> GetTagList(string AccessToken); /// <summary> /// 編輯標簽 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="id">標簽ID</param> /// <param name="name">標簽名稱</param> /// <returns></returns> CommonResult UpdateTag(string AccessToken, int id, string name); /// <summary> /// 刪除標簽 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="id">標簽ID</param> /// <returns></returns> CommonResult DeleteTag(string AccessToken, int id); /// <summary> /// 獲取標簽下粉絲列表 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="id">標簽ID</param> /// <param name="name">標簽名稱</param> /// <returns></returns> GetTagResult GetTag(string AccessToken, int id, string next_openid = null); /// <summary> /// 批量為用戶打標簽 /// 標簽功能目前支持公眾號為用戶打上最多三個標簽。 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="tagid">標簽ID</param> /// <param name="openid_list">粉絲列表</param> /// <returns></returns> CommonResult BatchTagging(string AccessToken, int tagid, List<string> openid_list); /// <summary> /// 批量為用戶取消標簽 /// 標簽功能目前支持公眾號為用戶打上最多三個標簽。 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="tagid">標簽ID</param> /// <param name="openid_list">粉絲列表</param> /// <returns></returns> CommonResult BatchUntagging(string AccessToken, int tagid, List<string> openid_list); /// <summary> /// 獲取用戶身上的標簽列表 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="openid">用戶OpenID</param> /// <returns></returns> List<int> GetIdList(string AccessToken, string openid); }

具體我們來看看幾個接口的官方定義數據。

1)創建標簽的接口

接口調用請求說明

http請求方式:POST(請使用https協議)

https://api.weixin.QQ.com/CGI-bin/tags/create?access_token=Access_TOKEN

POST數據格式:JSON

POST數據例子:

? 1 2 3 4 5 { "tag" : { "name" : "廣東"//標簽名 } }

返回說明(正常時返回的JSon數據包示例)

? 1 2 3 4 5 6 { "tag":{ "id":134,//標簽id "name":"廣東" } }

這樣我們就可以定義一個實體類來承載這個返回的數據了。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 /// <summary> /// 標簽信息 /// </summary> public class TagJSon { /// <summary> /// 標簽id,由微信分配 /// </summary> public int id { get; set; } /// <summary> /// 標簽名,UTF8編碼 /// </summary> public string name { get; set; } }

這樣,創建標簽的完整實現代碼如下所示

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /// <summary> /// 創建標簽 /// 一個公眾號,最多可以創建100個標簽。 /// </summary> /// <param name="AccessToken">調用接口憑證</param> /// <param name="name">標簽名(30個字符以內)</param> /// <returns></returns> public TagJSon CreateTag(string AccessToken, string name) { var url = string.Format("https://api.weixin.QQ.com/CGI-bin/tags/create?Access_token={0}", AccessToken); var data = new { tag = new { name = name } }; var postData = data.ToJSon(); var result = JsonHelper<TagCreateResult>.ConvertJSon(url, postData); return result != null ? result.tag : null; }

2)獲取公眾號已創建的標簽

接口調用請求說明

http請求方式:GET(請使用https協議)

https://api.weixin.QQ.com/CGI-bin/tags/get?access_token=Access_TOKEN

返回數據格式:JSON返回的數據例子:

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { "tags":[{ "id":1, "name":"黑名單", "count":0 //此標簽下粉絲數 },{ "id":2, "name":"星標組", "count":0 },{ "id":127, "name":"廣東", "count":5 } ] }

這樣我們就可以定義其返回值為List<TagCountJson>了,其中TagCountJSon為對應類的屬性即可。

? 1 2 3 4 5 6 7 8 9 10 /// <summary> /// 標簽信息和統計數量 /// </summary> public class TagCountJson : TagJSon { /// <summary> /// 此標簽下粉絲數 /// </summary> public int count { get; set; } }

這樣我們就可以通過JSON的解析返回對應的數據了,相關操作和上面的接口類似,不在贅述。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved