WeChat ポータルの C# 開発と WeChat エンタープライズ アカウントのアプリケーション メニュー管理
これまでの記事では、WeChat エンタープライズ アカウントの多くの関連操作を紹介しましたが、エンタープライズ アカウントは公式アカウントと同様にメニューをカスタマイズできるため、API を介してメニューの作成、リストの取得、メニューの削除も行うことができるため、この記事では引き続きメニューについて説明します。エンタープライズアカウントの管理業務。
このメニューは、多くの場合、クイック エントリを提供し、OAuth2 検証インターフェイスとカスタマイズされたリダイレクト メニューを通じて、ユーザー情報のメイン エントリを取得するために使用することもでき、対応するユーザー ID を取得できます。さらにユーザーの関連データを取得し、顧客に表示します。
1. メニューの概要
メニューのイベント処理は次のとおりです: クリックとジャンプの 2 つの操作が含まれます。将来的には、エンタープライズ アカウントにいくつかのコード スキャン操作、写真操作、およびその他の同様の機能が追加される可能性があります。公式アカウントは現在2つだけです。
公式メニュー定義インターフェースには、メニュー作成、リスト取得、メニュー削除の3つの操作が含まれており、公式アカウントの操作とほぼ同様です。
2. メニュー エンティティ クラスの定義とインターフェイス定義の処理
名前、タイプ、キー、URL、それ自体を指すサブメニュー参照などの属性の定義を含めて、メニューを定義します。メニューは複数のレベルに周期的に構築できますが、厳密に言えば、エンタープライズ アカウントのメニューは公式アカウントのメニューと同じで、第 1 レベルは 3 つ、第 2 レベルは最大 5 つあります。 3番目のレベルのメニュー。
エンティティクラスの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" } ] } ] }
- パラメータの説明
must | の説明 | |
---|---|---|
は | 呼び出し側インターフェースの認証情報です | |
は | の ID ですエンタープライズ アプリケーション、整数型。アプリケーションの設定ページで確認できます | |
はい | 第一レベルのメニュー配列、番号は1~3である必要があります | |
いいえ | 第二レベルのメニュー配列、数字は 1 ~ 5 です。 | |
は | メニューの応答アクションのタイプです。現在、クリックとビューの 2 つのタイプがあります。 | |
は | メニューのタイトルです。 16 バイト以上、サブメニューは不可 40 バイト以下 | |
クリックタイプ必須 | メニュー KEY 値、メッセージインターフェイスプッシュに使用、128 バイト以下 | |
ビュータイプ必須 | webリンク、従業員がメニューをクリック リンクは 256 バイト以内で開くことができます |
- 権限の説明
- 管理者はアプリケーションの管理権限を持っている必要があり、アプリケーションはコールバック モードに設定されている必要があります。
Return result
{ "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); }
WeChat エンタープライズ アカウント メニューの操作を紹介するために、メニューの作成の実装を例に挙げます。他の操作も同様で、簡単に処理して読み取ることができるようにパブリック メッセージ クラスを返します。は次のようになります。
/// <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); }
3. Enterprise Account メニュー管理インターフェイスの呼び出しと処理の効果
呼び出しコードとレンダリングは次のとおりです。
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()); } }
呼び出しコードのテスト出力を以下に示します。
WeChat ポータルとアプリケーションの C# 開発の詳細については、WeChat エンタープライズ アカウントのメニュー管理 関連記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







