ホームページ バックエンド開発 C#.Net チュートリアル WeChat ポータルとアプリケーションの C# 開発 (2) WeChat メッセージの処理と応答のグラフィカル コード チュートリアル

WeChat ポータルとアプリケーションの C# 開発 (2) WeChat メッセージの処理と応答のグラフィカル コード チュートリアル

Jun 18, 2017 am 10:26 AM
.net 対処する 応用 開発する 情報 ポータル

この記事では主に、WeChat ポータルとアプリケーションの C# 開発の第 2 部、WeChat メッセージの処理と応答について詳しく紹介します。興味のある友人は参考にしてください

WeChat アプリケーションは本格化しており、多くの企業が期待しています。 Information Express に参加することはビジネスチャンスでもあり、技術的な方向性でもあります。そのため、時間があるときに WeChat の開発について調べて学ぶことが計画された取り決めの 1 つになりました。この一連の記事では、WeChat の関連する開発プロセスと関連する経験の概要をステップバイステップの観点から包括的に紹介し、関連する開発プロセスを誰もが理解できるようにしたいと考えています。このエッセイは主に前回の記事「C# による WeChat ポータルとアプリケーションの開発 (1) -- WeChat インターフェイスの使用を開始する」に基づいて詳細に紹介し、WeChat メッセージの処理と応答のプロセスを紹介します。

1. WeChat のメッセージ応答インタラクション

WeChat のサーバーは、顧客の携帯電話と開発者のサーバーの間にブリッジを構築し、メッセージの送信と応答を通じてユーザーとのインタラクションを実現することがわかっています。これがメッセージ フロー図です。

WeChatが開発者サーバーに要求するメッセージには多くの種類がありますが、基本的にはテキストメッセージ処理、イベントメッセージ処理、音声メッセージ認識、開発者になる前の基本的なメッセージ認証操作に分類されます。私が描いたメッセージ分類図では、これらの関係とそれぞれのメッセージ絞り込み分類が紹介されています。

これらのメッセージリクエストについては、サーバーサイドを開発するときに、対応する処理に関連するロジックを作成し、WeChatサーバープラットフォームへのメッセージに応答する必要があります。

前回のエッセイでは、WeChatメッセージ処理の入力操作を紹介するコードを投稿しました。コードは次のとおりです。


  public void ProcessRequest(HttpContext context)
  {
   //WHC.Framework.Commons.LogTextHelper.Info("测试记录");

   string postString = string.Empty;
   if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")
   {
    using (Stream stream = HttpContext.Current.Request.InputStream)
    {
     Byte[] postBytes = new Byte[stream.Length];
     stream.Read(postBytes, 0, (Int32)stream.Length);
     postString = Encoding.UTF8.GetString(postBytes);
    }

    if (!string.IsNullOrEmpty(postString))
    {
     Execute(postString);
    }
   }
   else
   {
    Auth();
   }
  }
ログイン後にコピー

Execute(postString); は、さまざまなメッセージの配信と処理を実装するメッセージ処理関数です。 '


    /// <summary>
    /// 处理各种请求信息并应答(通过POST的请求)
    /// </summary>
    /// <param name="postStr">POST方式提交的数据</param>
    private void Execute(string postStr)
    {
      WeixinApiDispatch dispatch = new WeixinApiDispatch();
      string responseContent = dispatch.Execute(postStr);

      HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
      HttpContext.Current.Response.Write(responseContent);
    }
ログイン後にコピー

の WeixinApiDispatch は、リクエスト メッセージのコンテンツを抽出し、さまざまな種類のメッセージ パラメーターを構築し、それらをさまざまな応答関数に渡して処理し、カプセル化された XML コンテンツを応答として返します。 。

具体的なコード処理ロジックを以下の図に示します。

このメッセージ処理インターフェースは、実際にはリクエストメッセージオブジェクトの一連の処理を定義しています。具体的なコード定義は以下の通りです(スペースの都合上、一部のインターフェースは省略しています。)を参照してください。詳細については上の写真を参照してください)。


  /// <summary>
  /// 客户端请求的数据接口
  /// </summary>
  public interface IWeixinAction
  {
    /// <summary>
    /// 对文本请求信息进行处理
    /// </summary>
    /// <param name="info">文本信息实体</param>
    /// <returns></returns>
    string HandleText(RequestText info);

    /// <summary>
    /// 对图片请求信息进行处理
    /// </summary>
    /// <param name="info">图片信息实体</param>
    /// <returns></returns>
    string HandleImage(RequestImage info);

...........................


    /// <summary>
    /// 对订阅请求事件进行处理
    /// </summary>
    /// <param name="info">订阅请求事件信息实体</param>
    /// <returns></returns>
    string HandleEventSubscribe(RequestEventSubscribe info);

    /// <summary>
    /// 对菜单单击请求事件进行处理
    /// </summary>
    /// <param name="info">菜单单击请求事件信息实体</param>
    /// <returns></returns>
    string HandleEventClick(RequestEventClick info);

..............................
  }
ログイン後にコピー

上記のコードからわかるように、さまざまなメッセージがさまざまなメッセージ エンティティ クラスの形式で処理関数に渡されます (注: エンティティ クラスはプログラム開発のニーズに応じて私が定義します) 、非 WeChat 独自のエンティティ クラス )、これは操作を処理するのに非常に便利ですが、それ以外の場合は、毎回異なるメッセージの内容を解析する必要があるため、このように厳密に型指定された データ型 により能力が向上します。強力で効率的な WeChat アプリケーションを開発します。これらのエンティティクラスのオブジェクトは一定の継承関係を持っており、その継承関係は以下の通りである。

2. WeChat管理インターフェース

上記のメッセージ分類は、WeChatサーバーから開発者サーバーに送信されるメッセージリクエストです。 WeChat サーバーまたはレスポンス (ここでは一時的に WeChat の管理インターフェイスと呼ばれます) は、これらのインターフェイスを通じて関連するメッセージの返信やデータ管理操作を実行できることを示しています。その分類図を以下に示します。

WeChat 返信メッセージの処理は、上記セクションの情報と同じです。BaseMessage エンティティ クラスからも継承されます (同様に、下図のエンティティ クラスとその継承関係も、プログラム開発を容易にするためにカスタマイズされています)。 )、その関係は次のとおりです

一般に、返信するために最もよく使用されるメッセージはテキスト メッセージとグラフィック メッセージです。

テキストメッセージの効果は以下の通りです。

グラフィックメッセージの場合、写真や詳細なリンクページを追加できます。これは、コンテンツが多く、より良い効果を表示したい場合に非常に便利です。この効果は一般的に次のように使用されます。

以上がWeChat ポータルとアプリケーションの C# 開発 (2) 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)

WIN10サービスホストの動作プロセスがCPUを過剰に占有している WIN10サービスホストの動作プロセスがCPUを過剰に占有している Mar 27, 2024 pm 02:41 PM

1. まず、タスクバーの空白スペースを右クリックして[タスクマネージャー]オプションを選択するか、スタートロゴを右クリックして[タスクマネージャー]オプションを選択します。 2. 開いたタスク マネージャー インターフェイスで、右端の [サービス] タブをクリックします。 3. 開いた[サービス]タブで、下の[サービスを開く]オプションをクリックします。 4. 表示される[サービス]ウィンドウで、[InternetConnectionSharing(ICS)]サービスを右クリックし、[プロパティ]オプションを選択します。 5. 表示されたプロパティ画面で[プログラムから開く]を[無効]に変更し、[適用]をクリックして[OK]をクリックします。 6. スタートロゴをクリックし、シャットダウンボタンをクリックして[再起動]を選択し、コンピュータの再起動を完了します。

おすすめのAI支援プログラミングツール4選 おすすめのAI支援プログラミングツール4選 Apr 22, 2024 pm 05:34 PM

この AI 支援プログラミング ツールは、急速な AI 開発のこの段階において、多数の有用な AI 支援プログラミング ツールを発掘しました。 AI 支援プログラミング ツールは、開発効率を向上させ、コードの品質を向上させ、バグ率を減らすことができます。これらは、現代のソフトウェア開発プロセスにおける重要なアシスタントです。今日は Dayao が 4 つの AI 支援プログラミング ツールを紹介します (すべて C# 言語をサポートしています)。皆さんのお役に立てれば幸いです。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot は、より少ない労力でより迅速にコードを作成できるようにする AI コーディング アシスタントであり、問​​題解決とコラボレーションにより集中できるようになります。ギット

iPhoneのホーム画面から削除を元に戻す方法 iPhoneのホーム画面から削除を元に戻す方法 Apr 17, 2024 pm 07:37 PM

ホーム画面から重要なものを削除してしまい、元に戻そうとしていますか?さまざまな方法でアプリのアイコンを画面に戻すことができます。 iPhoneでホーム画面から削除を元に戻す方法 前述したように、iPhoneでこの変更を復元する方法はいくつかあります。方法 1 – App ライブラリのアプリ アイコンを置き換える App ライブラリから直接ホーム画面にアプリ アイコンを配置できます。ステップ 1 – 横にスワイプして、アプリ ライブラリ内のすべてのアプリを見つけます。ステップ 2 – 前に削除したアプリのアイコンを見つけます。ステップ 3 – アプリのアイコンをメインライブラリからホーム画面上の正しい場所にドラッグするだけです。これが応用図です

PHP における矢印記号の役割と実際の応用 PHP における矢印記号の役割と実際の応用 Mar 22, 2024 am 11:30 AM

PHP における矢印記号の役割と実際の応用 PHP では、通常、オブジェクトのプロパティとメソッドにアクセスするために矢印記号 (-&gt;) が使用されます。オブジェクトとは、PHP におけるオブジェクト指向プログラミング (OOP) の基本概念の 1 つで、実際の開発においては、矢印記号がオブジェクトを操作する上で重要な役割を果たします。この記事では、矢印記号の役割と実際の応用例を紹介し、読者の理解を深めるために具体的なコード例を示します。 1. オブジェクトのプロパティにアクセスするための矢印シンボルの役割 矢印シンボルは、オブジェクトのプロパティにアクセスするために使用できます。ペアをインスタンス化するとき

どのAIプログラマーが一番優れているでしょうか? Devin、Tongyi Lingma、SWE エージェントの可能性を探る どのAIプログラマーが一番優れているでしょうか? Devin、Tongyi Lingma、SWE エージェントの可能性を探る Apr 07, 2024 am 09:10 AM

世界初の AI プログラマー Devin の誕生から 1 か月も経たない 2022 年 3 月 3 日、プリンストン大学の NLP チームはオープンソース AI プログラマー SWE-agent を開発しました。 GPT-4 モデルを利用して、GitHub リポジトリの問題を自動的に解決します。 SWE ベンチ テスト セットにおける SWE エージェントのパフォーマンスは Devin と同様で、平均 93 秒かかり、問題の 12.29% を解決しました。専用端末と対話することで、SWE エージェントはファイルの内容を開いて検索したり、自動構文チェックを使用したり、特定の行を編集したり、テストを作成して実行したりできます。 (注: 上記の内容は元の内容を若干調整したものですが、原文の重要な情報は保持されており、指定された文字数制限を超えていません。) SWE-A

Go 言語を使用してモバイル アプリケーションを開発する方法を学ぶ Go 言語を使用してモバイル アプリケーションを開発する方法を学ぶ Mar 28, 2024 pm 10:00 PM

Go 言語開発モバイル アプリケーション チュートリアル モバイル アプリケーション市場が活況を続ける中、ますます多くの開発者が Go 言語を使用してモバイル アプリケーションを開発する方法を検討し始めています。シンプルで効率的なプログラミング言語として、Go 言語はモバイル アプリケーション開発でも大きな可能性を示しています。この記事では、Go 言語を使用してモバイル アプリケーションを開発する方法を詳しく紹介し、読者がすぐに始めて独自のモバイル アプリケーションの開発を開始できるように、具体的なコード例を添付します。 1. 準備 始める前に、開発環境とツールを準備する必要があります。頭

PHP で特殊文字を処理し、一重引用符を変換する方法を学習します。 PHP で特殊文字を処理し、一重引用符を変換する方法を学習します。 Mar 27, 2024 pm 12:39 PM

PHP 開発のプロセスでは、特殊文字の処理が一般的な問題になります。特に文字列処理では、特殊文字がエスケープされることがよくあります。その中でも、特殊文字を一重引用符に変換することは比較的一般的な要件です。これは、PHP では一重引用符が文字列をラップする一般的な方法であるためです。この記事では、PHP での特殊文字変換シングルクォーテーションの扱い方と具体的なコード例を説明します。 PHP では、特殊文字には一重引用符 (')、二重引用符 (")、バックスラッシュ () などが含まれますが、これらに限定されません。

いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する May 06, 2024 pm 04:43 PM

現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。

See all articles