C#微信開發(fā)之微信公眾號(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)簽的管理功能。
1、標(biāo)簽功能介紹
1)標(biāo)簽功能替代分組功能,支持多維度定義用戶屬性
運(yùn)營(yíng)者可登錄公眾平臺(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)簽。
另外,標(biāo)簽功能接口也已更新,開發(fā)者可調(diào)用接口,實(shí)現(xiàn)對(duì)標(biāo)簽和用戶操作。同時(shí),高級(jí)群發(fā)接口和個(gè)性化菜單接口等已支持根據(jù)標(biāo)簽實(shí)現(xiàn)操作。
2)優(yōu)化用戶卡片,支持多場(chǎng)景查看用戶頭像大圖與互動(dòng)數(shù)據(jù),增強(qiáng)運(yùn)營(yíng)者對(duì)用戶熟悉度與管理效率
本期新增消息數(shù)、留言數(shù)和贊賞數(shù)等互動(dòng)數(shù)據(jù),且顯示用戶關(guān)注時(shí)間和支持查看用戶頭像大圖,有利于拉近運(yùn)營(yíng)者與用戶的距離。另外, 支持“贊賞功能”和“留言管理”場(chǎng)景直接管理用戶,提升管理效率。
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)系,如下圖所示。
根據(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)操作和上面的接口類似,不在贅述。
上一篇:C#獲取串口列表實(shí)現(xiàn)實(shí)時(shí)監(jiān)控串口
欄 目:C#教程
下一篇:C#中調(diào)用VB中Inputbox類的實(shí)現(xiàn)方法
本文標(biāo)題:C#微信開發(fā)之微信公眾號(hào)標(biāo)簽管理功能
本文地址:http://m.jygsgssxh.com/a1/C_jiaocheng/6535.html
您可能感興趣的文章
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并打開的方法
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10C#實(shí)現(xiàn)Winform中打開網(wǎng)頁頁面的方法
- 01-10C#實(shí)現(xiàn)打開畫圖的同時(shí)載入圖片、最大化顯示畫圖窗體的方法
- 01-10C#使用windows服務(wù)開啟應(yīng)用程序的方法
- 01-10C#實(shí)現(xiàn)將應(yīng)用程序設(shè)置為開機(jī)啟動(dòng)的方法
- 01-10微信開放平臺(tái)之網(wǎng)站授權(quán)微信登錄功能
- 01-10C#調(diào)用WebService實(shí)例開發(fā)
- 01-10C#編程自學(xué)之開篇介紹
- 01-10實(shí)現(xiàn)ASP.NET無刷新下載并提示下載完成的開發(fā)思路


閱讀排行
- 1C語言 while語句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻播放器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊(cè)表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什


