ホームページ  >  記事  >  バックエンド開発  >  PHP を使用して WeChat 公開アカウント用の自動返信プログラムを作成する方法

PHP を使用して WeChat 公開アカウント用の自動返信プログラムを作成する方法

PHPz
PHPzオリジナル
2023-05-13 13:01:361340ブラウズ

モバイル インターネットの急速な発展に伴い、WeChat は人々の生活に欠かせないソーシャル ツールになりました。 WeChatの公開アカウントでは自動返信機能も欠かせない部分です。この記事では、PHP を使用して WeChat 公開アカウント用の自動返信プログラムを作成する方法を紹介します。

  1. 準備

まず、WeChat の公開アカウントを取得する必要があります。お持ちでない場合は、申請できます。次に、PHP プログラミングの基本的な能力も必要です。

  1. WeChat パブリック プラットフォームの開発者 API キーを取得する

WeChat パブリック プラットフォームでは、メッセージングに API を使用する前に開発者 API キーを取得する必要があります。送信と受信。 WeChat パブリック プラットフォームで、開発者センターに入り、基本構成を選択して、独自の開発者 API キーを取得します。

  1. コードの作成

次は、簡単な WeChat パブリック アカウント自動返信プログラムのサンプル コードです:

<?php
//获取开发者API密钥
define("TOKEN", "your_token");

//验证开发者服务器
if (isset($_GET["echostr"])) {
    $echoStr = $_GET["echostr"];
    if ($this->checkSignature()) {
        echo $echoStr;
        exit;
    }
}

//处理接收到的消息
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)) {
    $postObj = simplexml_load_string($postStr,'SimpleXMLElement');
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $type = $postObj->MsgType;
    $content = trim($postObj->Content);

    //文本消息
    if($type == "text") {
        if($content == "hello") {
            $msgContent = "您好,欢迎关注我的公众号!";
        } else {
            $msgContent = "您好,我是自动回复机器人,我还在学习中,暂时无法回复您的消息,敬请谅解!";
        }
        $time = time();
        $textTpl = "<xml>
                    <ToUserName><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[text]]></MsgType>
                    <Content><![CDATA[%s]]></Content>
                    <FuncFlag>0</FuncFlag>
                    </xml>";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgContent);
        echo $resultStr;
        exit;
    }
}

//验证开发者服务器
private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"]; 

    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode($tmpArr);
    $tmpStr = sha1($tmpStr);
    if ($tmpStr == $signature) {
        return true;
    } else {
        return false;
    }
}
?>

コードの説明:

  1. 開発者 API キーを定義します

    define("TOKEN", "your_token");

    「your_token」を独自の開発者 API キーに置き換える必要があります。

  2. 検証開発者サーバー

    if (isset($_GET["echostr"])) {
     $echoStr = $_GET["echostr"];
     if ($this->checkSignature()) {
         echo $echoStr;
         exit;
     }
    }

    WeChat パブリック プラットフォームが検証リクエストを開発者サーバーに送信する場合、検証が必要です。

  3. 受信メッセージの処理

    $postObj = simplexml_load_string($postStr,'SimpleXMLElement');
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $type = $postObj->MsgType;
    $content = trim($postObj->Content);

    WeChat パブリック プラットフォームから受信したメッセージを処理し、メッセージ タイプとメッセージの内容を取得します。

  4. テキスト メッセージの処理

    if($type == "text") {
     if($content == "hello") {
         $msgContent = "您好,欢迎关注我的公众号!";
     } else {
         $msgContent = "您好,我是自动回复机器人,我还在学习中,暂时无法回复您的消息,敬请谅解!";
     }
     $time = time();
     $textTpl = "<xml>
                 <ToUserName><![CDATA[%s]]></ToUserName>
                 <FromUserName><![CDATA[%s]]></FromUserName>
                 <CreateTime>%s</CreateTime>
                 <MsgType><![CDATA[text]]></MsgType>
                 <Content><![CDATA[%s]]></Content>
                 <FuncFlag>0</FuncFlag>
                 </xml>";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgContent);
     echo $resultStr;
     exit;
    }

    テキスト メッセージを受信すると、メッセージの内容に基づいて返信コンテンツが生成されます。

  5. 開発者サーバーの確認

    private function checkSignature()
    {
     $signature = $_GET["signature"];
     $timestamp = $_GET["timestamp"];
     $nonce = $_GET["nonce"]; 
    
     $token = TOKEN;
     $tmpArr = array($token, $timestamp, $nonce);
     sort($tmpArr, SORT_STRING);
     $tmpStr = implode($tmpArr);
     $tmpStr = sha1($tmpStr);
     if ($tmpStr == $signature) {
         return true;
     } else {
         return false;
     }
    }

    開発者サーバーを確認する方法。

  6. デプロイコード

記述したコードをサーバーにアップロードし、WeChat パブリック プラットフォームにインターフェイス構成情報を設定します。サーバー アドレス、開発者 API キー、インターフェイス構成情報を入力して保存します。

  1. 自動返信プログラムをテストする

WeChat 公式アカウントで、公式アカウントにメッセージを送信します。プログラムが正常に動作すると、対応するメッセージが自動的に返信されます。コンテンツ。

概要

この記事では、PHP を使用して WeChat 公開アカウント用の自動返信プログラムを作成する方法を簡単に紹介します。簡単なコードの作成、デバッグ、展開を行った後、簡単な自動応答プログラムを実装できます。もちろん、この例は単なる入門レベルのプログラムであり、より複雑なビジネス ロジックが必要な場合は、自分でコードを作成して拡張する必要があります。

以上がPHP を使用して WeChat 公開アカウント用の自動返信プログラムを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。