當(dāng)前位置:首頁 > IT技術(shù) > 微信平臺(tái) > 正文

C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能
2021-07-25 20:33:56

C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能

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

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

1、標(biāo)簽功能介紹

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

運(yùn)營者可登錄公眾平臺(tái)后臺(tái),點(diǎn)擊左側(cè)菜單“用戶管理”后管理已關(guān)注用戶,點(diǎn)擊其中一個(gè)用戶右側(cè)的“標(biāo)簽”小角標(biāo)可彈出復(fù)選框快速為該用戶添加標(biāo)簽,且添加標(biāo)簽復(fù)選框內(nèi)已支持直接新建標(biāo)簽。

C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能_微信公眾平臺(tái)及門戶應(yīng)用

另外,標(biāo)簽功能接口也已更新,開發(fā)者可調(diào)用接口,實(shí)現(xiàn)對(duì)標(biāo)簽和用戶操作。同時(shí),高級(jí)群發(fā)接口和個(gè)性化菜單接口等已支持根據(jù)標(biāo)簽實(shí)現(xiàn)操作。詳情可查看微信公眾平臺(tái)開發(fā)者文檔。

?

2)優(yōu)化用戶卡片,支持多場(chǎng)景查看用戶頭像大圖與互動(dòng)數(shù)據(jù),增強(qiáng)運(yùn)營者對(duì)用戶熟悉度與管理效率

本期新增消息數(shù)、留言數(shù)和贊賞數(shù)等互動(dòng)數(shù)據(jù),且顯示用戶關(guān)注時(shí)間和支持查看用戶頭像大圖,有利于拉近運(yùn)營者與用戶的距離。另外,?支持“贊賞功能”和“留言管理”場(chǎng)景直接管理用戶,提升管理效率。

?C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能_微信公眾平臺(tái)及門戶應(yīng)用_02

2、標(biāo)簽的接口封裝

標(biāo)簽的接口分為兩部分:標(biāo)簽管理和用戶管理,一個(gè)公眾號(hào),最多可以創(chuàng)建100個(gè)標(biāo)簽。標(biāo)簽功能目前支持公眾號(hào)為用戶打上最多三個(gè)標(biāo)簽。

其中標(biāo)簽管理包括:

1) 創(chuàng)建標(biāo)簽 ?2)獲取公眾號(hào)已創(chuàng)建的標(biāo)簽 ?3)編輯標(biāo)簽 ?4)刪除標(biāo)簽 ?5)獲取標(biāo)簽下粉絲列表

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

下面分別為幾種接口封裝進(jìn)行相關(guān)的介紹。

首先按照常規(guī)的方式 ,我們定義好相關(guān)的接口和實(shí)現(xiàn)關(guān)系,如下圖所示。

C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能_微信公眾平臺(tái)及門戶應(yīng)用_03

根據(jù)相關(guān)的接口說明,我們可以實(shí)現(xiàn)標(biāo)簽接口的定義,C#代碼如下所示。

    /// <summary>
    /// 微信標(biāo)簽管理的API接口
    /// 開發(fā)者可以使用用戶標(biāo)簽管理的相關(guān)接口,實(shí)現(xiàn)對(duì)公眾號(hào)的標(biāo)簽進(jìn)行創(chuàng)建、查詢、修改、刪除等操作,也可以對(duì)用戶進(jìn)行打標(biāo)簽、取消標(biāo)簽等操作。
    /// </summary>
    public interface ITagApi
    {               
        /// <summary>
        /// 創(chuàng)建標(biāo)簽
        /// 一個(gè)公眾號(hào),最多可以創(chuàng)建100個(gè)標(biāo)簽。
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="name">標(biāo)簽名(30個(gè)字符以內(nèi))</param>
        /// <returns></returns>
        TagJson CreateTag(string accessToken, string name);

        /// <summary>
        /// 獲取公眾號(hào)已創(chuàng)建的標(biāo)簽
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <returns></returns>
        List<TagCountJson> GetTagList(string accessToken);

        /// <summary>
        /// 編輯標(biāo)簽
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="id">標(biāo)簽ID</param>
        /// <param name="name">標(biāo)簽名稱</param>
        /// <returns></returns>
        CommonResult UpdateTag(string accessToken, int id, string name);

        /// <summary>
        /// 刪除標(biāo)簽
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="id">標(biāo)簽ID</param>
        /// <returns></returns>
        CommonResult DeleteTag(string accessToken, int id);

        /// <summary>
        /// 獲取標(biāo)簽下粉絲列表
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="id">標(biāo)簽ID</param>
        /// <param name="name">標(biāo)簽名稱</param>
        /// <returns></returns>
        GetTagResult GetTag(string accessToken, int id, string next_openid = null);

        /// <summary>
        /// 批量為用戶打標(biāo)簽
        /// 標(biāo)簽功能目前支持公眾號(hào)為用戶打上最多三個(gè)標(biāo)簽。
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="tagid">標(biāo)簽ID</param>
        /// <param name="openid_list">粉絲列表</param>
        /// <returns></returns>
        CommonResult BatchTagging(string accessToken, int tagid, List<string> openid_list);

        /// <summary>
        /// 批量為用戶取消標(biāo)簽
        /// 標(biāo)簽功能目前支持公眾號(hào)為用戶打上最多三個(gè)標(biāo)簽。
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="tagid">標(biāo)簽ID</param>
        /// <param name="openid_list">粉絲列表</param>
        /// <returns></returns>
        CommonResult BatchUntagging(string accessToken, int tagid, List<string> openid_list);

        /// <summary>
        /// 獲取用戶身上的標(biāo)簽列表
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="openid">用戶OpenID</param>
        /// <returns></returns>
        List<int> GetIdList(string accessToken, string openid);
    }

具體我們來看看幾個(gè)接口的官方定義數(shù)據(jù)。

1)創(chuàng)建標(biāo)簽的接口

接口調(diào)用請(qǐng)求說明

http請(qǐng)求方式:POST(請(qǐng)使用https協(xié)議)
https://api.weixin.qq.com/cgi-bin/tags/create?access_token=ACCESS_TOKEN
POST數(shù)據(jù)格式:JSON
POST數(shù)據(jù)例子:
{
  "tag" : {
    "name" : "廣東"http://標(biāo)簽名
  }
}

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

{
  "tag":{
  "id":134,//標(biāo)簽id
  "name":"廣東"
  }
}

這樣我們就可以定義一個(gè)實(shí)體類來承載這個(gè)返回的數(shù)據(jù)了。

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

        /// <summary>
        /// 標(biāo)簽名,UTF8編碼
        /// </summary>
        public string name { get; set; }
    }

這樣,創(chuàng)建標(biāo)簽的完整實(shí)現(xiàn)代碼如下所示

        /// <summary>
        /// 創(chuàng)建標(biāo)簽
        /// 一個(gè)公眾號(hào),最多可以創(chuàng)建100個(gè)標(biāo)簽。
        /// </summary>
        /// <param name="accessToken">調(diào)用接口憑證</param>
        /// <param name="name">標(biāo)簽名(30個(gè)字符以內(nèi))</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)獲取公眾號(hào)已創(chuàng)建的標(biāo)簽

接口調(diào)用請(qǐng)求說明

http請(qǐng)求方式:GET(請(qǐng)使用https協(xié)議)
https://api.weixin.qq.com/cgi-bin/tags/get?access_token=ACCESS_TOKEN

返回?cái)?shù)據(jù)格式:JSON
返回的數(shù)據(jù)例子: { "tags":[{ "id":1, "name":"黑名單", "count":0 //此標(biāo)簽下粉絲數(shù) },{ "id":2, "name":"星標(biāo)組", "count":0 },{ "id":127, "name":"廣東", "count":5 } ] }

這樣我們就可以定義其返回值為L(zhǎng)ist<TagCountJson>了,其中TagCountJson為對(duì)應(yīng)類的屬性即可。

    /// <summary>
    /// 標(biāo)簽信息和統(tǒng)計(jì)數(shù)量
    /// </summary>
    public class TagCountJson : TagJson
    {
        /// <summary>
        /// 此標(biāo)簽下粉絲數(shù)
        /// </summary>
        public int count { get; set; }
    }

這樣我們就可以通過JSON的解析返回對(duì)應(yīng)的數(shù)據(jù)了,相關(guān)操作和上面的接口類似,不在贅述。

本篇提供了一個(gè)管理標(biāo)簽的相關(guān)接口思路和相關(guān)實(shí)現(xiàn)代碼,希望大家可以有所啟發(fā)和幫助。

?

如果對(duì)這個(gè)《C#開發(fā)微信門戶及應(yīng)用》系列感興趣,可以關(guān)注我的其他文章,系列隨筆如下所示:

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

C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能

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

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

C#開發(fā)微信門戶及應(yīng)用(34)--微信裂變紅包

C#開發(fā)微信門戶及應(yīng)用(33)--微信現(xiàn)金紅包的封裝及使用

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

C#開發(fā)微信門戶及應(yīng)用(31)--微信語義理解接口的實(shí)現(xiàn)和處理

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

C#開發(fā)微信門戶及應(yīng)用(28)--微信“搖一搖·周邊”功能的使用和接口的實(shí)現(xiàn)

C#開發(fā)微信門戶及應(yīng)用(27)-公眾號(hào)模板消息管理?

C#開發(fā)微信門戶及應(yīng)用(26)-公眾號(hào)微信素材管理

C#開發(fā)微信門戶及應(yīng)用(25)-微信企業(yè)號(hào)的客戶端管理功能

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

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

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

C#開發(fā)微信門戶及應(yīng)用(21)-微信企業(yè)號(hào)的消息和事件的接收處理及解密?

C#開發(fā)微信門戶及應(yīng)用(20)-微信企業(yè)號(hào)的菜單管理

C#開發(fā)微信門戶及應(yīng)用(19)-微信企業(yè)號(hào)的消息發(fā)送(文本、圖片、文件、語音、視頻、圖文消息等)

C#開發(fā)微信門戶及應(yīng)用(18)-微信企業(yè)號(hào)的通訊錄管理開發(fā)之成員管理

C#開發(fā)微信門戶及應(yīng)用(17)-微信企業(yè)號(hào)的通訊錄管理開發(fā)之部門管理

C#開發(fā)微信門戶及應(yīng)用(16)-微信企業(yè)號(hào)的配置和使用

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

C#開發(fā)微信門戶及應(yīng)用(14)-在微信菜單中采用重定向獲取用戶數(shù)據(jù)

C#開發(fā)微信門戶及應(yīng)用(13)-使用地理位置擴(kuò)展相關(guān)應(yīng)用

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

C#開發(fā)微信門戶及應(yīng)用(11)--微信菜單的多種表現(xiàn)方式介紹

C#開發(fā)微信門戶及應(yīng)用(10)--在管理系統(tǒng)中同步微信用戶分組信息

C#開發(fā)微信門戶及應(yīng)用(9)-微信門戶菜單管理及提交到微信服務(wù)器

C#開發(fā)微信門戶及應(yīng)用(8)-微信門戶應(yīng)用管理系統(tǒng)功能介紹

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

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

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

C#開發(fā)微信門戶及應(yīng)用(4)--關(guān)注用戶列表及詳細(xì)信息管理

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

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

C#開發(fā)微信門戶及應(yīng)用(1)--開始使用微信接口

?

C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能_微信公眾平臺(tái)及門戶應(yīng)用_04主要研究技術(shù):代碼生成工具、會(huì)員管理系統(tǒng)、客戶關(guān)系管理軟件、病人資料管理軟件、Visio二次開發(fā)、酒店管理系統(tǒng)、倉庫管理系統(tǒng)等共享軟件開發(fā)
專注于Winform開發(fā)框架/混合式開發(fā)框架、Web開發(fā)框架、Bootstrap開發(fā)框架、微信門戶開發(fā)框架的研究及應(yīng)用。
??轉(zhuǎn)載請(qǐng)注明出處:
C#開發(fā)微信門戶及應(yīng)用(37)--微信公眾號(hào)標(biāo)簽管理功能_微信公眾平臺(tái)及門戶應(yīng)用_04撰寫人:伍華聰

本文摘自 :https://blog.51cto.com/w

開通會(huì)員,享受整站包年服務(wù)立即開通 >