目次
1. メニューの概要
名前、タイプ、キー、URL、それ自体を指すサブメニュー参照などの属性の定義を含めて、メニューを定義します。メニューは複数のレベルに周期的に構築できますが、厳密に言えば、エンタープライズ アカウントのメニューは公式アカウントのメニューと同じで、第 1 レベルは 3 つ、第 2 レベルは最大 5 つあります。 3番目のレベルのメニュー。
呼び出しコードとレンダリングは次のとおりです。
ホームページ WeChat アプレット WeChatの開発 WeChat ポータルの C# 開発と WeChat エンタープライズ アカウントのアプリケーション メニュー管理

WeChat ポータルの C# 開発と WeChat エンタープライズ アカウントのアプリケーション メニュー管理

Feb 18, 2017 am 09:40 AM

これまでの記事では、WeChat エンタープライズ アカウントの多くの関連操作を紹介しましたが、エンタープライズ アカウントは公式アカウントと同様にメニューをカスタマイズできるため、API を介してメニューの作成、リストの取得、メニューの削除も行うことができるため、この記事では引き続きメニューについて説明します。エンタープライズアカウントの管理業務。

このメニューは、多くの場合、クイック エントリを提供し、OAuth2 検証インターフェイスとカスタマイズされたリダイレクト メニューを通じて、ユーザー情報のメイン エントリを取得するために使用することもでき、対応するユーザー ID を取得できます。さらにユーザーの関連データを取得し、顧客に表示します。

1. メニューの概要

メニューのイベント処理は次のとおりです: クリックとジャンプの 2 つの操作が含まれます。将来的には、エンタープライズ アカウントにいくつかのコード スキャン操作、写真操作、およびその他の同様の機能が追加される可能性があります。公式アカウントは現在2つだけです。

C#开发微信门户及应用-微信企业号的菜单管理

公式メニュー定義インターフェースには、メニュー作成、リスト取得、メニュー削除の3つの操作が含まれており、公式アカウントの操作とほぼ同様です。

C#开发微信门户及应用-微信企业号的菜单管理

2. メニュー エンティティ クラスの定義とインターフェイス定義の処理

名前、タイプ、キー、URL、それ自体を指すサブメニュー参照などの属性の定義を含めて、メニューを定義します。メニューは複数のレベルに周期的に構築できますが、厳密に言えば、エンタープライズ アカウントのメニューは公式アカウントのメニューと同じで、第 1 レベルは 3 つ、第 2 レベルは最大 5 つあります。 3番目のレベルのメニュー。

エンティティクラスのUML図を以下に示します。

C#开发微信门户及应用-微信企业号的菜单管理 メニュー管理の作成操作、正式な定義は以下の通りです。

    リクエスト手順
  • 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_tokenagentid ボタンサブボタンtypenameキーurl
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());
            }
        }
ログイン後にコピー


呼び出しコードのテスト出力を以下に示します。

C#开发微信门户及应用-微信企业号的菜单管理

WeChat ポータルとアプリケーションの C# 開発の詳細については、WeChat エンタープライズ アカウントのメニュー管理 関連記事については、PHP 中国語 Web サイトに注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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