您好,登錄后才能下訂單哦!
小編給大家分享一下C#如何實(shí)現(xiàn)微信企業(yè)號(hào)的菜單管理 ,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
菜單的事件處理如下所示,包括了單擊和跳轉(zhuǎn)兩個(gè)操作,未來(lái)企業(yè)號(hào)可能會(huì)增加一些和公眾號(hào)一樣的掃碼操作,拍照操作等功能的,目前只有兩個(gè)。
官方的菜單定義接口包含了下面三種操作,菜單創(chuàng)建、列表獲取和菜單刪除,這點(diǎn)和公眾號(hào)操作幾乎一樣了。
我們定義菜單,包括定義它的一些屬性,包含有name, type, key,url,以及一個(gè)指向自身引用的子菜單引用,因此菜單就可以循環(huán)構(gòu)造多個(gè)層次,雖然嚴(yán)格意義上來(lái)講,企業(yè)號(hào)的菜單和公眾號(hào)菜單一樣,一級(jí)三個(gè),二級(jí)最多五個(gè),而且沒有三級(jí)菜單了。
實(shí)體類的UML圖示如下所示。
菜單管理的創(chuàng)建操作,官方定義如下所示。
請(qǐng)求說(shuō)明
Https請(qǐng)求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN&agentid=1
請(qǐng)求包如下:
{ "button":[ { "type":"click", "name":"今日歌曲", "key":"V1001_TODAY_MUSIC" }, { "name":"菜單", "sub_button":[ { "type":"view", "name":"搜索", "url":"http://www.soso.com/" }, { "type":"click", "name":"贊一下我們", "key":"V1001_GOOD" } ] } ] }
參數(shù)說(shuō)明
參數(shù) | 必須 | 說(shuō)明 |
---|---|---|
access_token | 是 | 調(diào)用接口憑證 |
agentid | 是 | 企業(yè)應(yīng)用的id,整型??稍趹?yīng)用的設(shè)置頁(yè)面查看 |
button | 是 | 一級(jí)菜單數(shù)組,個(gè)數(shù)應(yīng)為1~3個(gè) |
sub_button | 否 | 二級(jí)菜單數(shù)組,個(gè)數(shù)應(yīng)為1~5個(gè) |
type | 是 | 菜單的響應(yīng)動(dòng)作類型,目前有click、view兩種類型 |
name | 是 | 菜單標(biāo)題,不超過(guò)16個(gè)字節(jié),子菜單不超過(guò)40個(gè)字節(jié) |
key | click類型必須 | 菜單KEY值,用于消息接口推送,不超過(guò)128字節(jié) |
url | view類型必須 | 網(wǎng)頁(yè)鏈接,員工點(diǎn)擊菜單可打開鏈接,不超過(guò)256字節(jié) |
權(quán)限說(shuō)明
管理員須擁有應(yīng)用的管理權(quán)限,并且應(yīng)用必須設(shè)置在回調(diào)模式。
返回結(jié)果
{ "errcode":0, "errmsg":"ok" }
根據(jù)上面官方的定義語(yǔ)義,我們菜單管理的C#管理接口定義如下所示。
/// <summary> /// 企業(yè)號(hào)菜單管理接口定義 /// </summary> public interface ICorpMenuApi { /// <summary> /// 獲取菜單數(shù)據(jù) /// </summary> /// <param name="accessToken">調(diào)用接口憑證</param> /// <returns></returns> MenuListJson GetMenu(string accessToken, string agentid); /// <summary> /// 創(chuàng)建菜單 /// </summary> /// <param name="accessToken">調(diào)用接口憑證</param> /// <param name="menuJson">菜單對(duì)象</param> /// <returns></returns> CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid); /// <summary> /// 刪除菜單 /// </summary> /// <param name="accessToken">調(diào)用接口憑證</param> /// <returns></returns> CommonResult DeleteMenu(string accessToken, string agentid); }
我們以創(chuàng)建菜單的實(shí)現(xiàn)為例來(lái)介紹微信企業(yè)號(hào)菜單的操作,其他的操作類似處理,都是返回一個(gè)公共的消息類,方便處理和讀取,代碼如下所示。
/// <summary> /// 創(chuàng)建菜單 /// </summary> /// <param name="accessToken">調(diào)用接口憑證</param> /// <param name="menuJson">菜單對(duì)象</param> /// <returns></returns> public CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid) { var url = string.Format("http://www.php.cn/{0}&agentid={1}", accessToken, agentid); string postData = menuJson.ToJson(); return Helper.GetCorpExecuteResult(url, postData); }
調(diào)用的代碼和效果圖如下所示。
private void btnMenuCreate_Click(object sender, EventArgs e) { MenuJson productInfo = new MenuJson("產(chǎn)品介紹", new MenuJson[] { new MenuJson("軟件產(chǎn)品介紹", ButtonType.click, "event-software") , new MenuJson("框架源碼產(chǎn)品", ButtonType.click, "event-source") , new MenuJson("軟件定制開發(fā)", ButtonType.click, "event-develop") }); MenuJson frameworkInfo = new MenuJson("框架產(chǎn)品", new MenuJson[] { new MenuJson("Win開發(fā)框架", ButtonType.click, "win"), new MenuJson("WCF開發(fā)框架", ButtonType.click, "wcf"), new MenuJson("混合式框架", ButtonType.click, "mix"), new MenuJson("Web開發(fā)框架", ButtonType.click, "web") ,new MenuJson("代碼生成工具", ButtonType.click, "database2sharp") }); MenuJson relatedInfo = new MenuJson("相關(guān)鏈接", new MenuJson[] { new MenuJson("公司介紹", ButtonType.click, "event_company"), new MenuJson("官方網(wǎng)站", ButtonType.view, "http://www.php.cn/"), new MenuJson("聯(lián)系我們", ButtonType.click, "event_contact"), new MenuJson("應(yīng)答系統(tǒng)", ButtonType.click, "set-1"), new MenuJson("發(fā)郵件", ButtonType.view, "http://www.php.cn/") }); MenuListJson menuJson = new MenuListJson(); menuJson.button.AddRange(new MenuJson[] { productInfo, frameworkInfo, relatedInfo }); //Console.WriteLine(menuJson.ToJson()); if (MessageUtil.ShowYesNoAndWarning("您確認(rèn)要?jiǎng)?chuàng)建菜單嗎") == System.Windows.Forms.DialogResult.Yes) { ICorpMenuApi bll = new CorpMenuApi(); CommonResult result = bll.CreateMenu(token, menuJson, agentid); Console.WriteLine("創(chuàng)建菜單:" + (result.Success ? "成功" : "失敗:" + result.ErrorMessage)); } } private void btnMenuGet_Click(object sender, EventArgs e) { ICorpMenuApi bll = new CorpMenuApi(); MenuListJson menu = bll.GetMenu(token, agentid); if (menu != null) { Console.WriteLine(menu.ToJson()); } }
調(diào)用代碼的測(cè)試輸出如下所示。
以上是“C#如何實(shí)現(xiàn)微信企業(yè)號(hào)的菜單管理 ”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。