検索
ホームページWeChat アプレットWeChatの開発Force.com WeChat 開発シリーズのユーザーメッセージ処理

Force.com は、国際的に有名なクラウド プラットフォーム会社です。Force.com を WeChat パブリック アカウントのサーバーとして正常に構成したら、次に必要なタスクは、ユーザーが送信したメッセージを処理することです。一般の WeChat ユーザーが公開アカウントにメッセージを送信すると、WeChat サーバーは開発者が入力した URL にメッセージの XML データ パケットを POST します。通常、メッセージの種類にはテキスト情報、画像情報、音声情報、ビデオ情報が含まれます。 、地理的な位置情報とリンク情報。各メッセージの XML パケットの詳細な構造については、http://mp.weixin.qq.com/wiki/index.php?title=%E6%8E%A5%E6%94%B6%E6%99 % を参照してください。 AE%E9%80%9A%E6%B6%88%E6%81%AF。この記事では、テキスト メッセージの XML パケットの形式と説明を以下に示します:

テキスト メッセージ XML パケットの例

1348831860
 
 
 1234567890123456

データ パケット構造の説明

Force.com WeChat 開発シリーズのユーザーメッセージ処理

使用状況を監視するデバッグ ログを介したデータの送信

Force.com WeChat ユーザーが送信した XML データ情報を簡単に観察するには、Force.com バックエンドのセットアップ ページに入り、左側のナビゲーション バーの [ログ] の下にある [デバッグ ログ] をクリックして入力し、[監視対象] の横にある [新規] をクリックします。以下に示すように、右側の [ユーザー] ボタン:

Force.com WeChat 開発シリーズのユーザーメッセージ処理

次の画面では、Force.com サーバーとのやり取りを監視するユーザーを選択できます。虫眼鏡を使用してすべてのユーザーを検索します。その中で、Site.com は「サイト ゲスト ユーザー...」と同様の匿名アカウントを使用します。

Force.com WeChat 開発シリーズのユーザーメッセージ処理

現時点では、WeChat ユーザーの場合この WeChat 公開アカウントをフォローしている人は、このアカウントにテキストを送信し、デバッグ ログ監視ページを更新すると、以下の対応する新しいログが表示されます:

Force.com WeChat 開発シリーズのユーザーメッセージ処理

をクリックすると、ログに送信したテキストを含む XML パケットが表示されます。 :

Force.com WeChat 開発シリーズのユーザーメッセージ処理

この種のログは、後続のデバッグに使用することもできます。

ユーザーメッセージ処理メソッドを作成します

次に、前に作成したWeChatRestControllerクラスを開き、ユーザーデータパケットに応答する次のメソッドをその中に追加します

@HttpPost
    global static void doPost(){
        //存储XML各节点数据变量
        String toUserName = '';
        String fromUserName = '';
        String msgType = '';
        String content = '';
        //获取XML数据包
        RestRequest req = RestContext.request;
        RestResponse res = RestContext.response;
        string strMsg = req.requestBody.toString();  
        XmlStreamReader reader = new XmlStreamReader(strMsg);

        //解析XML数据包,Force.com这块的处理能力并不强,简单的结构也需要较多代码来解析
         while(reader.hasNext()){
            if(reader.getLocalName() == 'ToUserName'){
                reader.next();
                if(String.isNotBlank(reader.getText())){
                    toUserName = reader.getText();
                }
            }
            else if(reader.getLocalName() == 'FromUserName'){
                reader.next();
                if(String.isNotBlank(reader.getText())){
                    fromUserName = reader.getText();
                }
            }
            else if(reader.getLocalName() == 'MsgType'){
                reader.next();
                if(String.isNotBlank(reader.getText())){
                    msgType = reader.getText();
                }
            }
            else if(reader.getLocalName() == 'Content'){
                reader.next();
                if(String.isNotBlank(reader.getText())){
                    content = reader.getText();
                }
            }
            reader.next();
        }
    }

上記のコードは、ユーザーによって送信されたデータXMLパケットの解析を完了します、次へ http://mp.weixin.qq.com/wiki/index.php?title=%E5%8F%91%E9%80%81%E8%A2%AB%E5%8A%A8%E5 をフォローします%93 %8D%E5%BA%94%E6%B6%88%E6%81%AF は、ユーザーに返信するテキスト メッセージ データも基本的に XML 構造になっていると説明しています。送信されるテキスト メッセージの XML データ構造と同じです。 詳細については、リンク内の Tencent の詳細な紹介を参照してください。次のコードは、現在の日付と時刻をユーザーに自動的に送信します。前のコードの While ループの後に次のコードを追加します。

Datetime dt = System.now();
String returnDT = dt.format('EEEE, MMMM d, yyyy');
String replyMSG = &#39;<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{2}]]></Content></xml>&#39;;
String[] arguments = new String[]{fromUserName, toUserName, rtnMsg};
String formattedReplyMSG = String.format(replyMSG, arguments);
RestContext.response.addHeader(&#39;Content-Type&#39;, &#39;text/plain&#39;);
RestContext.response.responseBody = Blob.valueOf(rtnMsg);

前のコードで少し覚えておく必要があるのは、ToUserName パラメーターと FromUserName パラメーターです。行 3 は通常の WeChat ユーザーによって送信されます。メッセージ XML パケットはその逆です。

この時点で、この公開アカウントにメッセージを送信する一般ユーザーは、現在の時刻情報をすぐに受け取ることができます。

Force.com 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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Mac版

SublimeText3 Mac版

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