ホームページ >バックエンド開発 >PHPチュートリアル >PHP の基本チュートリアル WeChat パブリック プラットフォームの開発
要約: WeChat パブリック プラットフォームによって提供されるインターフェイスは非常にシンプルです。最初にメッセージ インタラクション プロセスを見てみましょう。より簡単に言うと、ユーザーは WeChat を使用してメッセージを送信します。WeChat は開発者にデータを送信します。メッセージを処理してデータを返す WeChat へ - WeChat は返されたデータをユーザーに送信します。その間、データのやり取りは XML を通じて完了します。それだけです...
WeChat パブリック プラットフォームが提供するインターフェイスは非常にシンプルです。まずメッセージ対話プロセスを見てみましょう:
は、ユーザーが WeChat を使用してメッセージを送信する -> WeChat が開発者にデータを送信する -> 開発者がメッセージを処理して WeChat にデータを返す -> WeChat が返されたデータを送信する、と述べました。データをユーザーに送信する間、データのやり取りは XML を通じて完了します。
WeChat インテリジェント チャットボットを開発するには、以下の例を作成してください:
WeChat パブリック プラットフォーム アカウントを登録します
WeChat パブリック プラットフォーム:
https://mp.weixin.qq.com/
注: 現在 ID カード登録できるアカウント名はV認定に関わるものですので、慎重に登録してください。
サーバー/仮想ホストを申請する
サーバー/仮想ホストのない子供用の靴はBAEとSAEを使用でき、これ以上の紹介はありません。
開発者モードを有効にする
WeChatパブリックプラットフォームには2つのモードがあり、1つは編集モード(愚者モード)で、シンプルですが機能は1つです。もう 1 つは開発者モードで、開発を通じて複雑な機能を実装できます。明らかに、2 つのモードは相互に排他的です。WeChat パブリック プラットフォームにログインし、[高度な機能] メニューから開発者モードをオンにします。
インターフェース構成情報を入力します
これは「高度な機能」メニューでも構成され、次の 2 つのパラメーターを構成する必要があります:
URL: 開発者アプリケーションのアクセス アドレス。現在はポート 80 のみをサポートしており、「http:/」 /www.YoonPer.com/weixin/index.php」を例として挙げます。
トークン: 署名を生成したいものをすべて入力します。例として「YoonPer」を取り上げます。
入力後、次のコードをindex.phpとして保存し、http://www.YoonPer.com/weixin/ディレクトリにアップロードし、最後に「送信」をクリックして検証を完了します。
define("TOKEN", "YoonPer"); //TOKEN值 $wechatObj = new wechat(); $wechatObj->valid(); class wechat { public function valid() { $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ) { return true; } else { return false; } } } ?>
実際、URL が正しくアクセスされているかどうかを検証するのに実質的な意味はありません。検証後にファイルを削除することはできません。子どもたちは公式ドキュメントを確認できます。
WeChat パブリック プラットフォーム API ドキュメント: http://mp.weixin.qq.com/wiki/index.php
WeChat パブリック プラットフォーム機能を開発します
OK、上記のように、WeChat パブリック プラットフォームと開発者間のデータのやり取りXML を使用するため、当然のことながら仕様に従う必要があるため、開発を開始する前に、テキスト メッセージを例に挙げて、XML の仕様を確認してください。ユーザーが WeChat パブリック アカウントにメッセージを送信する メッセージを送信するとき、WeChat サーバーは開発者にデータを POST します:
<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><MsgId>1234567890123456MsgId>xml>
<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><FuncFlag>0FuncFlag>xml>
WeChat パブリック プラットフォームでは、ユーザーが画像メッセージや地理的位置情報を送信することもできます。また、開発者は、WeChat パブリック プラットフォームに音楽メッセージやグラフィック メッセージに返信することもできます。公式文書で発見されました。
いくつか簡略化した公式の PHP の例を見てみましょう。
responseMsg(); class wechat { public function responseMsg() { //---------- 接 收 数 据 ---------- // $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据 //用SimpleXML解析POST过来的XML数据 $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID) $toUsername = $postObj->ToUserName; //获取接收方账号 $keyword = trim($postObj->Content); //获取消息内容 $time = time(); //获取当前时间戳 //---------- 返 回 数 据 ---------- // //返回消息模板 $textTpl = "%s0"; $msgType = "text"; //消息类型 include('simsimi.php'); $contentStr = simsimi($keyword); //返回消息内容 //格式化消息模板 $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo $resultStr; //输出结果 } } ?>
コードを Index.php として保存し、http://www.YoonPer.com/weixin/ ディレクトリにアップロードします。今すぐ削除しないでください。ファイルは直接上書きされます。
現在、ユーザーは WeChat パブリック プラットフォームを通じてメッセージを送信すると、パブリック アカウントは「http://www.YoonPer.com」というコンテンツを含むメッセージを返します。
次に行う必要があるのは、ユーザーのメッセージに基づいて動的に結果を返すことです~SimSimi (Little Yellow Chicken) は現在人気のチャットロボットです。CURL と入力キーワードを使用して無料の SimSimi (Little Yellow Chicken) インターフェイスを開発しました。テキストの返信が返されます。この部分はこの記事の焦点ではないので、これ以上は説明しません。コードに進みます。/*------------------------------------------------- | simsimi.php [ 智能聊天(simsimi) ] +-------------------------------------------------- | Author: LimYoonPer +------------------------------------------------*/ function simsimi ($keyword) { $keyword = urlencode($keyword); //----------- 获取COOKIE ----------// $url = "http://www.simsimi.com/"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $content = curl_exec($ch); list($header, $body) = explode("\r\n\r\n", $content); preg_match_all("/set\-cookie:([^\r\n]*);/iU", $header, $matches); $cookie = implode(';', $matches[1]).";simsimi_uid=1;"; curl_close($ch); //----------- 抓 取 回 复 ----------// $url = "http://www.simsimi.com/func/reqN?lc=ch&ft=0.0&req=$keyword&fl=http%3A%2F%2Fwww.simsimi.com%2Ftalk.htm"; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIE, $cookie); $content = json_decode(curl_exec($ch), 1); curl_close($ch); if ( $content['result'] == '200' ) { return $content['sentence_resp']; } else { return '我还不会回答这个问题...'; } } ?>
以上がPHP の基本チュートリアル WeChat パブリック プラットフォームの開発の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。