PHP를 사용하여 공개 계정의 자동 응답 규칙 관리 기능을 개발하는 방법

WBOY
풀어 주다: 2023-09-19 11:08:02
원래의
951명이 탐색했습니다.

PHP를 사용하여 공개 계정의 자동 응답 규칙 관리 기능을 개발하는 방법

PHP를 사용하여 공개 계정의 자동 응답 규칙 관리 기능을 개발하는 방법

WeChat 공개 계정의 인기로 인해 많은 기업과 개인이 WeChat 공개 계정을 이해하고 사용하기 시작했습니다. WeChat 공식 계정은 풍부한 기능 인터페이스를 제공하며 그 중 자동 응답 규칙 관리 기능은 매우 중요한 기능입니다. 이 글에서는 PHP를 사용하여 공개 계정의 자동 응답 규칙 관리 기능을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

우선, WeChat 공식 계정의 자동 답장 규칙 관리 기능에 대한 몇 가지 기본 개념을 이해해야 합니다. 위챗 공식 계정의 백엔드 관리 페이지에서 맞춤 메뉴와 키워드 자동 응답 규칙을 설정할 수 있습니다.

맞춤 메뉴란 사용자가 공식 계정을 팔로우한 후 메뉴를 클릭하면 공식 계정이 메뉴 설정에 따라 그에 맞게 반응하는 것을 의미합니다. 사용자 정의 메뉴는 1차 메뉴와 2차 메뉴로 나눌 수 있습니다. 각 메뉴 항목을 클릭하면 응답 메시지, 점프 링크, 인터페이스 호출 등의 이벤트가 발생하도록 설정할 수 있습니다.

키워드 자동 답글 규칙은 사용자가 특정 키워드가 포함된 메시지를 보내면 공식 계정이 설정된 답글 규칙에 따라 답장을 보내는 것을 의미합니다. 키워드는 텍스트, 그림, 링크 등이 될 수 있습니다. 회신 규칙은 고정 메시지에 대한 회신, 임의 메시지에 대한 회신, 호출 인터페이스 등이 될 수 있습니다.

다음으로, PHP를 활용하여 공개 계정의 자동 답장 규칙 관리 기능을 개발하는 방법을 자세히 소개하겠습니다.

먼저 웹 서버(Apache, Nginx 등), PHP 파서, MySQL 데이터베이스를 포함한 PHP 개발 환경을 준비해야 합니다. 이 환경에서는 PHP를 사용하여 웹 애플리케이션을 개발하고 WeChat 서버의 요청을 처리하며 그에 따라 응답할 수 있습니다.

다음으로 WeChat 공식 계정의 AppID와 AppSecret을 얻어야 합니다. WeChat 공개 플랫폼에서 개발자 계정을 신청하고 공개 계정을 만들 수 있습니다. 공식 계정 설정에서 AppID와 AppSecret을 찾을 수 있습니다.

다음으로 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;
        }
    }
}
로그인 후 복사

위 코드에서는 먼저 WeChat 개발자 도구에서 구성한 토큰을 저장하기 위해 상수 TOKEN을 정의합니다. 다음으로 wechatCallbackAPI라는 클래스를 생성하고 해당 클래스에 valid() 및 checkSignature()라는 두 가지 메서드를 정의했습니다.

valid() 메소드는 WeChat 서버와 자체 서버 간의 신원을 확인하고 확인 결과를 반환하는 데 사용됩니다. 이 방법에서는 먼저 WeChat 서버가 전달한 echostr 매개변수를 가져와 $echoStr 변수에 저장합니다. 그런 다음 인증을 위해 checkSignature() 메서드를 호출합니다. 검증에 성공하면 $echoStr이 클라이언트에 출력되고 프로그램 실행이 종료됩니다.

checkSignature() 메소드는 WeChat 서버가 전달한 매개변수가 유효한지 확인하는 데 사용됩니다. 먼저 WeChat 서버에서 전달한 서명, 타임스탬프 및 nonce 매개변수를 가져와 해당 변수에 저장합니다. 그런 다음 TOKEN, 타임스탬프, nonce를 사전순으로 정렬하고 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() 메소드를 차례로 호출하여 위챗 서버와 자사 서버간의 인증을 완료하고, 사용자의 인증을 처리하였습니다. 메시지.

이제 PHP를 이용하여 공식 계정의 자동 답글 규칙 관리 기능에 대한 코드 작성을 완료했습니다. 다음으로 wechat.php 파일을 웹 서버에 배포하고 WeChat 공개 플랫폼에서 서버 주소와 토큰을 구성하여 코드가 유효한지 테스트할 수 있습니다.

요약하자면, 이 글에서는 PHP를 사용하여 공개 계정의 자동 응답 규칙 관리 기능을 개발하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 도움이 되기를 바랍니다.

위 내용은 PHP를 사용하여 공개 계정의 자동 응답 규칙 관리 기능을 개발하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!