この記事では、通常のメッセージを受信して受動的に返信するための WeChat 公開アカウントの Java 開発に関する関連情報を主に紹介します。必要な友達はそれを参照してください。
この記事では、WeChat 公開アカウントにアクセスする方法についての説明を終了しました。 WeChat 公開アカウントの最も基本的な機能: 通常のメッセージの受信と返信。通常のメッセージについて言えば、WeChat 公式アカウントによって定義される通常のメッセージとは何ですか? WeChat 開発者ドキュメントで説明されているように、受信される通常のメッセージには次のカテゴリが含まれます:
写真
メッセージ 3.音声メッセージ 4.
ビデオ
メッセージ 5. 短いビデオ メッセージ 6. 位置情報メッセージ
7. リンク メッセージ (受動的な返信メッセージ)
1. テキストに返信メッセージ
3. 音声メッセージに返信
4. ビデオ メッセージに返信
5. 音楽メッセージに返信
6. グラフィック メッセージに返信
実際には
し、受動的にメッセージに返信します。この 2 つのアクションは切り離すことができません。これはインタラクティブなシーンであり、一般的に、パブリック アカウントは受信したメッセージを分析し、対応する応答を返します。もちろん、一部の特殊なビジネスを排除することはできません。
受信する 7 つのメッセージの
形式はここにはリストされていません。具体的な形式の定義と 属性 の説明については、公式ドキュメントを確認してください。形式は非常に単純で、基本的な共通属性には ToUserName、FromUserName、CreateTime、MsgType、MsgId が含まれており、各タイプには独自の特別な属性があります。
これを見ると、メッセージを受信するプロセスは、実際には
のxmlを取得して、そのxmlを分析するプロセスであることがわかります。投稿リクエストの入り口は、前述のように WeChat 公式アカウントにアクセスするアドレスのままですが、公式アカウント全体に対するリクエストはすべてこの入り口を経由しますが、アクセスする場合は get リクエストになります。投稿リクエスト。 XML の処理には Dom4j を使用します。XML の処理コードは次のとおりです。
public static Map parseXml(HttpServletRequest request) throws Exception { // 将解析结果存储在HashMap中 Map map = new HashMap(); // 从request中取得输入流 InputStream inputStream = request.getInputStream(); /* * 读取request的body内容 此方法会导致流读取问题 Premature end of file. Nested exception: * Premature end of file String requestBody = * inputStream2String(inputStream); System.out.println(requestBody); */ // 读取输入流 SAXReader reader = new SAXReader(); Document document = reader.read(inputStream); // 得到xml根元素 Element root = document.getRootElement(); // 得到根元素的所有子节点 List<Element> elementList = root.elements(); // 遍历所有子节点 for (Element e : elementList) map.put(e.getName(), e.getText()); // 释放资源 inputStream.close(); inputStream = null; return map; } private static String inputStream2String(InputStream is) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); int i = -1; while ((i = is.read()) != -1) { baos.write(i); } return baos.toString(); }
テキスト メッセージへの返信を例に挙げます。
<xml> <ToUserName><![CDATA[发消息的人,即订阅者]]></ToUserName> <FromUserName><![CDATA[微信公众号本身]]></FromUserName> <CreateTime>消息创建时间(整形)</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[消息内容]]></Content> </xml>
CreateTime は、メッセージによって送信された
です。 MsgType はメッセージの種類で、テキストはテキストです。 Content はメッセージの内容です。
各タイプのメッセージに対する具体的な応答は、このタイプの XML 形式コンテンツを構築することです。形式は似ていますが、音楽、ビデオ、音声、グラフィックスの形式は、テキスト メッセージで構築される XML コンテンツよりも少し複雑です。 。詳細については公式ドキュメントを参照してください。ここでは詳しく説明しませんが、一目で理解できると思います。
以上がJava を使用して通常のメッセージを受信して受動的に返信する WeChat 公開アカウントを開発する方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。