本篇內(nèi)容主要講解“C#怎么實現(xiàn)微信企業(yè)號的菜單管理 ”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#怎么實現(xiàn)微信企業(yè)號的菜單管理 ”吧!
為新縣等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及新縣網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、新縣網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!菜單在很多情況下,能夠給我們提供一個快速入口,也可以用來獲取用戶信息的主要入口,通過OAuth3驗證接口,以及自定義的重定向菜單,我們就可以獲取對應(yīng)的用戶ID,然后進一步獲取到用戶的相關(guān)數(shù)據(jù),可以顯示給客戶。
菜單的事件處理如下所示,包括了單擊和跳轉(zhuǎn)兩個操作,未來企業(yè)號可能會增加一些和公眾號一樣的掃碼操作,拍照操作等功能的,目前只有兩個。

官方的菜單定義接口包含了下面三種操作,菜單創(chuàng)建、列表獲取和菜單刪除,這點和公眾號操作幾乎一樣了。

我們定義菜單,包括定義它的一些屬性,包含有name, type, key,url,以及一個指向自身引用的子菜單引用,因此菜單就可以循環(huán)構(gòu)造多個層次,雖然嚴格意義上來講,企業(yè)號的菜單和公眾號菜單一樣,一級三個,二級最多五個,而且沒有三級菜單了。
實體類的UML圖示如下所示。

菜單管理的創(chuàng)建操作,官方定義如下所示。
請求說明
Https請求方式: POST
https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN&agentid=1
請求包如下:
{
"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ù)說明
| 參數(shù) | 必須 | 說明 |
|---|---|---|
| access_token | 是 | 調(diào)用接口憑證 |
| agentid | 是 | 企業(yè)應(yīng)用的id,整型。可在應(yīng)用的設(shè)置頁面查看 |
| button | 是 | 一級菜單數(shù)組,個數(shù)應(yīng)為1~3個 |
| sub_button | 否 | 二級菜單數(shù)組,個數(shù)應(yīng)為1~5個 |
| type | 是 | 菜單的響應(yīng)動作類型,目前有click、view兩種類型 |
| name | 是 | 菜單標題,不超過16個字節(jié),子菜單不超過40個字節(jié) |
| key | click類型必須 | 菜單KEY值,用于消息接口推送,不超過128字節(jié) |
| url | view類型必須 | 網(wǎng)頁鏈接,員工點擊菜單可打開鏈接,不超過256字節(jié) |
權(quán)限說明
管理員須擁有應(yīng)用的管理權(quán)限,并且應(yīng)用必須設(shè)置在回調(diào)模式。
返回結(jié)果
{
"errcode":0,
"errmsg":"ok"
}根據(jù)上面官方的定義語義,我們菜單管理的C#管理接口定義如下所示。
/// <summary>
/// 企業(yè)號菜單管理接口定義 /// </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">菜單對象</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)建菜單的實現(xiàn)為例來介紹微信企業(yè)號菜單的操作,其他的操作類似處理,都是返回一個公共的消息類,方便處理和讀取,代碼如下所示。
/// <summary>
/// 創(chuàng)建菜單 /// </summary>
/// <param name="accessToken">調(diào)用接口憑證</param>
/// <param name="menuJson">菜單對象</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("您確認要創(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#怎么實現(xiàn)微信企業(yè)號的菜單管理 ”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
新聞標題:C#怎么實現(xiàn)微信企業(yè)號的菜單管理-創(chuàng)新互聯(lián)
文章分享:http://chinadenli.net/article36/coggsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、Google、移動網(wǎng)站建設(shè)、搜索引擎優(yōu)化、建站公司、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)