狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

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

admin
2014年12月2日 0:54 本文熱度 4782

前面幾篇陸續介紹了很多微信企業號的相關操作,企業號和公眾號一樣都可以自定義菜單,因此他們也可以通過API進行菜單的創建、獲取列表、刪除的操作,因此本篇繼續探討這個主體,介紹企業號的菜單管理操作。


菜單在很多情況下,能夠給我們提供一個快速入口,也可以用來獲取用戶信息的主要入口,通過OAuth2驗證接口,以及自定義的重定向菜單,我們就可以獲取對應的用戶ID,然后進一步獲取到用戶的相關數據,可以顯示給客戶。


1、菜單的總體介紹


菜單的事件處理如下所示,包括了單擊和跳轉兩個操作,未來企業號可能會增加一些和公眾號一樣的掃碼操作,拍照操作等功能的,目前只有兩個。



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



 


2、菜單的實體類定義和接口定義處理


我們定義菜單,包括定義它的一些屬性,包含有name, type, key,url,以及一個指向自身引用的子菜單引用,因此菜單就可以循環構造多個層次,雖然嚴格意義上來講,企業號的菜單和公眾號菜單一樣,一級三個,二級最多五個,而且沒有三級菜單了。


實體類的UML圖示如下所示。



菜單管理的創建操作,官方定義如下所示。



  • 請求說明

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"
}
]
}
]
}


  • 參數說明






































參數 必須 說明
access_token 調用接口憑證
agentid 企業應用的id,整型。可在應用的設置頁面查看
button 一級菜單數組,個數應為1~3個
sub_button 二級菜單數組,個數應為1~5個
type 菜單的響應動作類型,目前有click、view兩種類型
name 菜單標題,不超過16個字節,子菜單不超過40個字節
key click類型必須 菜單KEY值,用于消息接口推送,不超過128字節
url view類型必須 網頁鏈接,員工點擊菜單可打開鏈接,不超過256字節


  • 權限說明

管理員須擁有應用的管理權限,并且應用必須設置在回調模式。


返回結果

{
"errcode":0,
"errmsg":"ok"
}

 


根據上面官方的定義語義,我們菜單管理的C#管理接口定義如下所示。



復制代碼
    /// <summary>
/// 企業號菜單管理接口定義
/// </summary>
public interface ICorpMenuApi
{
/// <summary>
/// 獲取菜單數據
/// </summary>
/// <param name="accessToken">調用接口憑證</param>
/// <returns></returns>
MenuListJson GetMenu(string accessToken, string agentid);
/// <summary>
/// 創建菜單
/// </summary>
/// <param name="accessToken">調用接口憑證</param>
/// <param name="menuJson">菜單對象</param>
/// <returns></returns>
CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid);
/// <summary>
/// 刪除菜單
/// </summary>
/// <param name="accessToken">調用接口憑證</param>
/// <returns></returns>
CommonResult DeleteMenu(string accessToken, string agentid);
}

復制代碼

我們以創建菜單的實現為例來介紹微信企業號菜單的操作,其他的操作類似處理,都是返回一個公共的消息類,方便處理和讀取,代碼如下所示。



復制代碼
        /// <summary>
/// 創建菜單
/// </summary>
/// <param name="accessToken">調用接口憑證</param>
/// <param name="menuJson">菜單對象</param>
/// <returns></returns>
public CommonResult CreateMenu(string accessToken, MenuListJson menuJson, string agentid)
{
var url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token={0}&agentid={1}", accessToken, agentid);
string postData = menuJson.ToJson();
return Helper.GetCorpExecuteResult(url, postData);
}

復制代碼

 


3、企業號菜單管理接口的調用和處理效果


調用的代碼和效果圖如下所示。



復制代碼
        private void btnMenuCreate_Click(object sender, EventArgs e)
{
MenuJson productInfo
= new MenuJson("產品介紹", new MenuJson[] {
new MenuJson("軟件產品介紹", ButtonType.click, "event-software")
,
new MenuJson("框架源碼產品", ButtonType.click, "event-source")
,
new MenuJson("軟件定制開發", ButtonType.click, "event-develop")
});
MenuJson frameworkInfo
= new MenuJson("框架產品", new MenuJson[] {
new MenuJson("Win開發框架", ButtonType.click, "win"),
new MenuJson("WCF開發框架", ButtonType.click, "wcf"),
new MenuJson("混合式框架", ButtonType.click, "mix"),
new MenuJson("Web開發框架", ButtonType.click, "web")
,
new MenuJson("代碼生成工具", ButtonType.click, "database2sharp")
});
MenuJson relatedInfo
= new MenuJson("相關鏈接", new MenuJson[] {
new MenuJson("公司介紹", ButtonType.click, "event_company"),
new MenuJson("官方網站", ButtonType.view, "http://www.iqidi.com"),
new MenuJson("聯系我們", ButtonType.click, "event_contact"),
new MenuJson("應答系統", ButtonType.click, "set-1"),
new MenuJson("發郵件", ButtonType.view, "http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=S31yfX15fn8LOjplKCQm")
});
MenuListJson menuJson
= new MenuListJson();
menuJson.button.AddRange(
new MenuJson[] { productInfo, frameworkInfo, relatedInfo });
//Console.WriteLine(menuJson.ToJson());
if (MessageUtil.ShowYesNoAndWarning("您確認要創建菜單嗎") == System.Windows.Forms.DialogResult.Yes)
{
ICorpMenuApi bll
= new CorpMenuApi();
CommonResult result
= bll.CreateMenu(token, menuJson, agentid);
Console.WriteLine(
"創建菜單:" + (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());
}
}

復制代碼

調用代碼的測試輸出如下所示。



 


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


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)--開始使用微信接口


 



主要研究技術:代碼生成工具、Visio二次開發、客戶關系管理軟件、送水管理軟件等共享軟件開發
專注于Winform開發框架Web開發框架、WCF開發框架的研究及應用。
  轉載請注明出處:
撰寫人:伍華聰  http://www.iqidi.com 
    





 

該文章在 2014/12/2 0:54:52 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved