In den vorherigen Artikeln wurden viele verwandte Vorgänge von WeChat-Unternehmenskonten vorgestellt. Unternehmenskonten und offizielle Konten können Menüs anpassen, sodass sie auch Menüs über APIs erstellen, Listen abrufen und löschen können. Daher wird in diesem Artikel dieses Thema weiter untersucht , stellen wir die Menüverwaltungsvorgänge des Unternehmenskontos vor. Das Menü
kann uns in vielen Fällen einen schnellen Einstieg ermöglichen und auch zum Abrufen des Haupteintrags für Benutzerinformationen verwendet werden. Über die OAuth2-Verifizierungsschnittstelle und das benutzerdefinierte Weiterleitungsmenü können wir den entsprechenden Benutzer abrufen ID und erhalten dann weiter die relevanten Daten des Benutzers, die dem Kunden angezeigt werden können.
Die Ereignisverarbeitung des Menüs ist wie folgt, einschließlich Klick- und Sprungvorgängen. In Zukunft werden dem Unternehmenskonto möglicherweise einige Scanfunktionen hinzugefügt Offizielles Konto. Derzeit gibt es nur zwei Funktionen wie Code-Operation und Foto-Operation.
Die offizielle Menüdefinitionsschnittstelle umfasst die folgenden drei Vorgänge: Menüerstellung, Listenerfassung und Menülöschung, die fast mit den offiziellen Kontovorgängen identisch sind.
Wir definieren das Menü, einschließlich der Definition einiger seiner Attribute. Es gibt Name, Typ, Schlüssel, URL und eine Untermenüreferenz, die auf sich selbst verweist, sodass das Menü zyklisch auf mehreren Ebenen aufgebaut werden kann. Obwohl das Menü des Unternehmenskontos genau genommen das gleiche ist wie das Menü des offiziellen Kontos , mit drei Ebenen auf einer Ebene. Es gibt maximal fünf Menüs der zweiten Ebene und kein Menü der dritten Ebene.
Das UML-Diagramm der Entitätsklasse sieht wie folgt aus.
Der Erstellungsvorgang der Menüverwaltung, die offizielle Definition lautet wie folgt.
Anleitung anfordern
Https-Anfragemethode: POST
https://qyapi.weixin.qq.com/cgi -bin/menu/create?access_token=ACCESS_TOKEN&agentid=1
Das Anforderungspaket lautet wie folgt:
{ "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" } ] } ] }
Parameterbeschreibung
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
agentid | 是 | 企业应用的id,整型。可在应用的设置页面查看 |
button | 是 | 一级菜单数组,个数应为1~3个 |
sub_button | 否 | 二级菜单数组,个数应为1~5个 |
type | 是 | 菜单的响应动作类型,目前有click、view两种类型 |
name | 是 | 菜单标题,不超过16个字节,子菜单不超过40个字节 |
key | click类型必须 | 菜单KEY值,用于消息接口推送,不超过128字节 |
url | view类型必须 | 网页链接,员工点击菜单可打开链接,不超过256字节 |
Berechtigungsbeschreibung
Der Administrator muss über Verwaltungsberechtigungen für die Anwendung verfügen und die Anwendung muss in den Rückrufmodus versetzt werden.
Ergebnis zurückgeben
{ "errcode":0, "errmsg":"ok" }
Gemäß der oben genannten offiziellen Definitionssemantik lautet die Definition der C#-Verwaltungsschnittstelle unserer Menüverwaltung wie folgt.
/// <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); }
Wir nehmen die Implementierung des Erstellens eines Menüs als Beispiel, um die Funktionsweise des WeChat-Unternehmenskontomenüs vorzustellen ähnlich und werden zurückgegeben. Eine öffentliche Nachrichtenklasse zur einfachen Verarbeitung und zum Lesen. Der Code lautet wie folgt.
/// <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("//m.sbmmt.com/{0}&agentid={1}", accessToken, agentid); string postData = menuJson.ToJson(); return Helper.GetCorpExecuteResult(url, postData); }
Der Aufrufcode und Wirkung Das Bild ist unten dargestellt.
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, "//m.sbmmt.com/"), new MenuJson("联系我们", ButtonType.click, "event_contact"), new MenuJson("应答系统", ButtonType.click, "set-1"), new MenuJson("发邮件", ButtonType.view, "//m.sbmmt.com/") }); 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()); } }
Die Testausgabe des Aufrufcodes wird unten angezeigt.
Für weitere C#-Entwicklung des WeChat-Portals und Anwendung der Menüverwaltung des WeChat-Unternehmenskontos achten Sie bitte darauf zu PHP Chinesisch für verwandte Artikel im Internet!