Les articles précédents ont présenté de nombreuses opérations connexes des comptes d'entreprise WeChat. Les comptes d'entreprise et les comptes officiels peuvent personnaliser les menus, ils peuvent donc également créer des menus, obtenir des listes et supprimer des menus via des API. Par conséquent, cet article continue d'explorer ce sujet. , nous présenterons les opérations de gestion des menus du compte d'entreprise. Le menu
peut nous fournir une entrée rapide dans de nombreux cas, et peut également être utilisé pour obtenir l'entrée principale des informations sur l'utilisateur Grâce à l'interface de vérification OAuth2 et au menu de redirection personnalisé, nous pouvons obtenir l'utilisateur correspondant. ID, puis obtenez en outre les données pertinentes de l'utilisateur, qui peuvent être affichées au client.
Le traitement des événements du menu est le suivant, y compris les opérations de clic et de saut. À l'avenir, le compte d'entreprise pourra ajouter des fonctions de numérisation similaires à celles du menu. compte officiel. Actuellement, il n'y a que deux fonctions telles que l'opération de code et l'opération de photo.
L'interface officielle de définition de menu comprend les trois opérations suivantes, création de menu, acquisition de liste et suppression de menu, qui sont presque les mêmes que les opérations du compte officiel.
Nous définissons le menu, y compris la définition de certains de ses attributs, y compris Il y a un nom, un type, une clé, une URL et une référence de sous-menu pointant vers lui-même, de sorte que le menu peut être construit de manière cyclique sur plusieurs niveaux. Bien qu'à proprement parler, le menu du compte d'entreprise soit le même que le menu du compte officiel. , avec trois niveaux sur un seul niveau. Il existe un maximum de cinq menus de deuxième niveau et il n'y a pas de menu de troisième niveau.
Le diagramme UML de la classe d'entité est présenté ci-dessous.
L'opération de création de gestion de menu, la définition officielle est la suivante.
Instructions de demande
Méthode de demande HTTPS : POST
https://qyapi.weixin.qq.com/cgi -bin/menu/create?access_token=ACCESS_TOKEN&agentid=1
Le package de requête est le suivant :
{ "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" } ] } ] }
Description du paramètre
参数 | 必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
agentid | 是 | 企业应用的id,整型。可在应用的设置页面查看 |
button | 是 | 一级菜单数组,个数应为1~3个 |
sub_button | 否 | 二级菜单数组,个数应为1~5个 |
type | 是 | 菜单的响应动作类型,目前有click、view两种类型 |
name | 是 | 菜单标题,不超过16个字节,子菜单不超过40个字节 |
key | click类型必须 | 菜单KEY值,用于消息接口推送,不超过128字节 |
url | view类型必须 | 网页链接,员工点击菜单可打开链接,不超过256字节 |
Description des autorisations
L'administrateur doit disposer des autorisations de gestion pour l'application et l'application doit être définie en mode de rappel.
Résultats de retour
{ "errcode":0, "errmsg":"ok" }
Selon la sémantique de définition officielle ci-dessus, la définition de l'interface de gestion C# de notre gestion de menus est la suivante.
/// <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); }
Nous prenons comme exemple la mise en œuvre de la création d'un menu pour présenter le fonctionnement du menu du compte d'entreprise WeChat. D'autres opérations sont traitées. de la même manière et sont renvoyés Une classe de message publique pour un traitement et une lecture faciles. Le code est le suivant.
/// <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("http://www.php.cn/{0}&agentid={1}", accessToken, agentid); string postData = menuJson.ToJson(); return Helper.GetCorpExecuteResult(url, postData); }
Le code d'appel et effet L'image est présentée ci-dessous.
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.php.cn/"), new MenuJson("联系我们", ButtonType.click, "event_contact"), new MenuJson("应答系统", ButtonType.click, "set-1"), new MenuJson("发邮件", 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("您确认要创建菜单吗") == 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()); } }
La sortie de test du code appelant est présentée ci-dessous.
Pour plus de développement C# du portail WeChat et l'application de gestion des menus du compte d'entreprise WeChat, veuillez faire attention vers PHP chinois pour des articles connexes net !