


Développement de la plateforme publique WeChat : description de l'interface de menu personnalisée
Il n'y a pas si longtemps, WeChat a lancé une interface de menu personnalisée et le SDK Senparc.Weixin a également été mis à jour simultanément.
Cette mise à jour met à niveau la version Senparc.Weixin.MP vers la v13.5.2, qui dépend de la version Senparc.Weixin 4.5.4. Les deux branches de .NET4.5(master) / .NET4.0 ont été mises à jour simultanément.
En raison des changements importants apportés au menu personnalisé, toute l'interface du menu a été reconstruite dans la plus grande zone jusqu'à présent (elle peut être rétrocompatible).
Par rapport au menu personnalisé précédent, les fonctions actuelles liées au menu ont été entièrement organisées en fonction de la structure du fichier :
Interface
Les interfaces de menu ont toutes été classées dans le répertoire CommonAPIs/Menu. Il y a 3 fichiers de classe sous la section CommonApi :
文件名 | 说明 |
CommonApi.Menu.Common.cs | 菜单公共方法 |
CommonApi.Menu.Conditional.cs | 个性化菜单 |
CommonApi.Menu.Custom.cs | 普通自定义菜单 |
Fichier d'interface de menu
L'interface du menu personnalisé a été assurée pour être rétrocompatible. S'il existe des projets qui ont développé des fonctions de menu personnalisées dans le passé, vous pouvez mettre à niveau en toute confiance. Le contenu de la classe menu personnalisé est le suivant :/*---------------------------------------------------------------- Copyright (C) 2015 Senparc 文件名:CommonApi.Menu.Conditional 文件功能描述:个性化自定义菜单接口 创建标识:Senparc - 20151222 修改标识:Senparc - 20151222 修改描述:v13.5.1 添加个性化菜单接口 ----------------------------------------------------------------*/ /* API:http://mp.weixin.qq.com/wiki/0/c48ccd12b69ae023159b4bfaa7c39c20.html */ using Senparc.Weixin.Entities; using Senparc.Weixin.Helpers; using Senparc.Weixin.MP.Entities; using Senparc.Weixin.MP.Entities.Menu; namespace Senparc.Weixin.MP.CommonAPIs { public partial class CommonApi { /// <summary> /// 创建个新华菜单 /// </summary> /// <param name="accessTokenOrAppId">AccessToken或AppId。当为AppId时,如果AccessToken错误将自动获取一次。当为null时,获取当前注册的第一个AppId。</param> /// <param name="buttonData">菜单内容</param> /// <returns></returns> public static CreateMenuConditionalResult CreateMenuConditional(string accessTokenOrAppId, ConditionalButtonGroup buttonData, int timeOut = Config.TIME_OUT) { return ApiHandlerWapper.TryCommonApi(accessToken => { var urlFormat = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token={0}"; var jsonSetting = new JsonSetting(true); return CommonJsonSend.Send<CreateMenuConditionalResult>(accessToken, urlFormat, buttonData, timeOut: timeOut, jsonSetting: jsonSetting); }, accessTokenOrAppId); } #region GetMenu /* 使用普通自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息,请见自定义菜单查询接口的说明 */ /// <summary> /// 测试个性化菜单匹配结果 /// </summary> /// <param name="accessTokenOrAppId"></param> /// <param name="userId">可以是粉丝的OpenID,也可以是粉丝的微信号。</param> /// <returns></returns> public static MenuTryMatchResult TryMatch(string accessTokenOrAppId, string userId) { return ApiHandlerWapper.TryCommonApi(accessToken => { var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token={0}", accessToken); var data = new { user_id = userId }; return CommonJsonSend.Send<MenuTryMatchResult>(accessToken, url, data, CommonJsonSendType.POST); }, accessTokenOrAppId); } #endregion /// <summary> /// 删除菜单 /// </summary> /// <param name="accessTokenOrAppId"></param> /// <param name="menuId">菜单Id</param> /// <returns></returns> public static WxJsonResult DeleteMenuConditional(string accessTokenOrAppId, string menuId) { return ApiHandlerWapper.TryCommonApi(accessToken => { var url = string.Format("https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token={0}", accessToken); var data = new { menuId = menuId }; return CommonJsonSend.Send(accessToken, url, data, CommonJsonSendType.POST); }, accessTokenOrAppId); } /* 使用普通自定义菜单删除接口可以删除所有自定义菜单(包括默认菜单和全部个性化菜单),请见自定义菜单删除接口的说明。 */ } }
- Les interfaces d'ajout et de suppression de menus pour les menus personnalisés et les menus personnalisés sont différentes, et vous devez appeler différentes interfaces lorsque vous les utilisez.
- Si vous utilisez un menu personnalisé, au moins une règle du MenuMatchRule doit être renseignée.
- Les données renvoyées lors de l'obtention du menu sont différentes pour l'utilisation du menu personnalisé et pour ne pas l'utiliser (le premier inclut le second), donc le SDK ne fournit la même que pour ces deux cas . Entité : GetMenuResult (l'entité de message de réception correspondante est GetMenuResultFull). Les informations (liste) sur les menus Xinhua peuvent être lues directement depuis GetMenuResult.conditionalmenu. Si elles sont nulles ou si la liste est vide, cela signifie qu'il n'y a pas de menu personnalisé.

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

