ホームページ >バックエンド開発 >PHPチュートリアル >PHPを使って公開アカウントの自動返信ルール管理機能を開発する方法
PHP を使用してパブリック アカウントの自動返信ルール管理機能を開発する方法
WeChat パブリック アカウントの人気により、多くの企業や個人が理解し始めています。 WeChat の公開アカウントを使用します。 WeChat公式アカウントは機能豊富なインターフェースを提供しており、その中でも自動返信ルール管理機能は非常に重要な機能です。この記事では、PHPを使用してパブリックアカウントの自動返信ルール管理機能を開発する方法と具体的なコード例を紹介します。
まず、WeChat 公開アカウントの自動返信ルール管理機能の基本概念を理解する必要があります。 WeChat公式アカウントのバックエンド管理ページでは、カスタムメニューやキーワード自動返信ルールを設定できます。
カスタムメニューとは、ユーザーが公式アカウントをフォローした後にメニューをクリックすると、公式アカウントがメニューの設定に従って応答することを意味します。カスタム メニューは、第 1 レベルのメニューと第 2 レベルのメニューに分けることができ、各メニュー項目は、クリック後に応答メッセージ、ジャンプ リンク、インターフェイス呼び出しなどのイベントをトリガーするように設定できます。
キーワード自動返信ルールとは、ユーザーが特定のキーワードを含むメッセージを送信すると、設定された返信ルールに従って公式アカウントが返信するルールです。キーワードには、テキスト、画像、リンクなどを指定できます。返信ルールには、固定メッセージへの返信、ランダム メッセージへの返信、インターフェイスの呼び出しなどがあります。
次からは、PHPを使って公開アカウントの自動返信ルール管理機能を開発する方法を詳しく紹介していきます。
まず、Web サーバー (Apache や Nginx など)、PHP パーサー、MySQL データベースなどの PHP 開発環境を準備する必要があります。この環境では、PHP を使用して Web アプリケーションを開発し、WeChat サーバーからのリクエストを処理し、それに応じて応答することができます。
次に、WeChat 公式アカウントの AppID と AppSecret を取得する必要があります。 WeChat パブリック プラットフォームで開発者アカウントを申請し、パブリック アカウントを作成できます。公式アカウントの設定で、AppID と AppSecret を見つけることができます。
次に、WeChat パブリック プラットフォームの開発者ツールでサーバー アドレスとトークンを構成する必要があります。サーバーアドレスは弊社が構築したWebサーバーのアドレスであり、トークンはWeChatサーバーと弊社サーバー間の同一性を検証するために使用される文字列です。構成が完了したら、「確認」をクリックしてトークンを保存します。これはコードを記述するときに必要になります。
次に、PHP コードの記述を開始できます。まず、wechat.php という名前のファイルを作成し、そのファイルに次のコードを記述します。
<?php define("TOKEN", "YOUR_TOKEN"); $wechatObj = new wechatCallbackAPI(); $wechatObj->valid(); class wechatCallbackAPI { 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; } } }
上記のコードでは、まず定数 TOKEN を定義して、データを WeChat 開発者ツールの構成トークンに保存します。次に、wechatCallbackAPI という名前のクラスを作成し、そのクラスに valid() と checkSignature() という 2 つのメソッドを定義しました。
valid() メソッドは、WeChat サーバーと弊社サーバー間の同一性を検証し、検証結果を返すために使用されます。このメソッドでは、まず WeChat サーバーから渡された echostr パラメーターを取得し、それを $echoStr 変数に保存します。次に、認証のために checkSignature() メソッドを呼び出します。検証に合格すると、$echoStr がクライアントに出力され、プログラムの実行が終了します。
checkSignature() メソッドは、WeChat サーバーから渡されたパラメーターが有効かどうかを確認するために使用されます。まず、WeChat サーバーから渡された署名、タイムスタンプ、ノンス パラメータを取得し、対応する変数に保存します。次に、TOKEN、タイムスタンプ、ノンスを辞書編集順に並べ替え、暗号化に SHA1 アルゴリズムを使用します。最後に、暗号化された文字列が WeChat サーバーから渡された署名と比較され、一致する場合は検証に合格し、一致しない場合は検証に失敗します。
次に、自動応答のコードを記述します。簡単のため、ここではキーワード自動返信機能のみを実装します。 wechat.php ファイルに、次のコードを追加します。
<?php // 省略上面的代码 class wechatCallbackAPI { // 省略上面的代码 public function responseMsg() { // 获取微信服务器POST过来的XML数据 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $content = trim($postObj->Content); $time = time(); if ($content == "你好"){ $textTpl = "<xml> "; $textTpl .= "<ToUserName><![CDATA[%s]]></ToUserName> "; $textTpl .= "<FromUserName><![CDATA[%s]]></FromUserName> "; $textTpl .= "<CreateTime>%s</CreateTime> "; $textTpl .= "<MsgType><![CDATA[text]]></MsgType> "; $textTpl .= "<Content><![CDATA[%s]]></Content> "; $textTpl .= "</xml>"; $msgType = "text"; $replyContent = "你好!欢迎关注我的公众号!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $replyContent); echo $resultStr; } else { echo "success"; } }else { echo "success"; exit; } } } $wechatObj = new wechatCallbackAPI(); $wechatObj->valid(); $wechatObj->responseMsg();
上記のコードでは、wechatCallbackAPI クラス (ユーザー メッセージの処理に使用) に responseMsg() という名前のメソッドを追加しました。このメソッドでは、まず WeChat サーバーから XML データ POST を取得し、それを $postStr 変数に保存します。次に、XML データは simplexml_load_string() 関数を通じて SimpleXMLElement オブジェクトに変換され、対応するノード値を持つ変数に保存されます。
ここではキーワード自動返信機能を例に説明します。ユーザーが送ったメッセージの内容が「こんにちは」であれば公式アカウントは「こんにちは!公式アカウントのフォローへようこそ!」と返信しますが、それ以外の場合は返信がありません。
最後に、wechat.php ファイルの最後に $wechatObj オブジェクトを作成し、valid() メソッドと responseMsg() メソッドを順番に呼び出して、WeChat サーバーと私たち自身のサーバー間の認証を完了しました。ユーザーメッセージを処理します。
ここまでで、PHPを使用して公開アカウントの自動返信ルール管理機能を開発するコードの記述が完了しました。次に、wechat.php ファイルを Web サーバーにデプロイし、WeChat パブリック プラットフォームでサーバー アドレスとトークンを構成して、コードが有効かどうかをテストします。
要約すると、この記事では、PHP を使用してパブリック アカウントの自動返信ルール管理機能を開発する方法と、具体的なコード例を紹介します。お役に立てれば幸いです。
以上がPHPを使って公開アカウントの自動返信ルール管理機能を開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。