C#開發微信門戶及應用(37)--微信公眾號標簽管理功能


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

1、標簽功能介紹

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

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

另外,標簽功能接口也已更新,開發者可調用接口,實現對標簽和用戶操作。同時,高級群發接口和個性化菜單接口等已支持根據標簽實現操作。詳情可查看微信公眾平台開發者文檔

 

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

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

 

2、標簽的接口封裝

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

其中標簽管理包括:

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

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

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

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

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

    /// <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數據例子:
{
  "tag" : {
    "name" : "廣東"//標簽名
  }
}

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

{
  "tag":{
  "id":134,//標簽id
  "name":"廣東"
  }
}

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

    /// <summary>
    /// 標簽信息
    /// </summary>
    public class TagJson
    {
        /// <summary>
        /// 標簽id,由微信分配
        /// </summary>
        public int id { get; set; }

        /// <summary>
        /// 標簽名,UTF8編碼
        /// </summary>
        public string name { get; set; }
    }

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

        /// <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
返回的數據例子: {
"tags":[{ "id":1, "name":"黑名單", "count":0 //此標簽下粉絲數 },{ "id":2, "name":"星標組", "count":0 },{ "id":127, "name":"廣東", "count":5 } ] }

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

    /// <summary>
    /// 標簽信息和統計數量
    /// </summary>
    public class TagCountJson : TagJson
    {
        /// <summary>
        /// 此標簽下粉絲數
        /// </summary>
        public int count { get; set; }
    }

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

本篇提供了一個管理標簽的相關接口思路和相關實現代碼,希望大家可以有所啟發和幫助。

 

如果對這個《C#開發微信門戶及應用》系列感興趣,可以關注我的其他文章,系列隨筆如下所示:

C#開發微信門戶及應用(38)--微信搖一搖紅包功能

C#開發微信門戶及應用(37)--微信公眾號標簽管理功能

C#開發微信門戶及應用(36)--微信卡劵管理的封裝操作

C#開發微信門戶及應用(35)--微信支付之企業付款封裝操作

C#開發微信門戶及應用(34)--微信裂變紅包

C#開發微信門戶及應用(33)--微信現金紅包的封裝及使用

C#開發微信門戶及應用(32)--微信支付接入和API封裝使用

C#開發微信門戶及應用(31)--微信語義理解接口的實現和處理

C#開發微信門戶及應用(30)--消息的群發處理和預覽功能

C#開發微信門戶及應用(28)--微信“搖一搖·周邊”功能的使用和接口的實現

C#開發微信門戶及應用(27)-公眾號模板消息管理 

C#開發微信門戶及應用(26)-公眾號微信素材管理

C#開發微信門戶及應用(25)-微信企業號的客戶端管理功能

C#開發微信門戶及應用(24)-微信小店貨架信息管理

C#開發微信門戶及應用(23)-微信小店商品管理接口的封裝和測試

C#開發微信門戶及應用(22)-微信小店的開發和使用

C#開發微信門戶及應用(21)-微信企業號的消息和事件的接收處理及解密 

C#開發微信門戶及應用(20)-微信企業號的菜單管理

C#開發微信門戶及應用(19)-微信企業號的消息發送(文本、圖片、文件、語音、視頻、圖文消息等)

C#開發微信門戶及應用(18)-微信企業號的通訊錄管理開發之成員管理

C#開發微信門戶及應用(17)-微信企業號的通訊錄管理開發之部門管理

C#開發微信門戶及應用(16)-微信企業號的配置和使用

C#開發微信門戶及應用(15)-微信菜單增加掃一掃、發圖片、發地理位置功能

C#開發微信門戶及應用(14)-在微信菜單中采用重定向獲取用戶數據

C#開發微信門戶及應用(13)-使用地理位置擴展相關應用

C#開發微信門戶及應用(12)-使用語音處理

C#開發微信門戶及應用(11)--微信菜單的多種表現方式介紹

C#開發微信門戶及應用(10)--在管理系統中同步微信用戶分組信息

C#開發微信門戶及應用(9)-微信門戶菜單管理及提交到微信服務器

C#開發微信門戶及應用(8)-微信門戶應用管理系統功能介紹

C#開發微信門戶及應用(7)-微信多客服功能及開發集成

C#開發微信門戶及應用(6)--微信門戶菜單的管理操作

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

C#開發微信門戶及應用(4)--關注用戶列表及詳細信息管理

C#開發微信門戶及應用(3)--文本消息和圖文消息的應答

C#開發微信門戶及應用(2)--微信消息的處理和應答

C#開發微信門戶及應用(1)--開始使用微信接口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM