PHP 기본 튜토리얼 WeChat 공개 플랫폼 개발

巴扎黑
풀어 주다: 2023-03-15 10:38:01
원래의
1361명이 탐색했습니다.


요약: WeChat 공개 플랫폼에서 제공하는 인터페이스는 매우 간단합니다. 먼저 메시지 상호 작용 프로세스를 살펴보겠습니다. 더 간단히 말하면 사용자는 WeChat을 사용하여 메시지를 보냅니다. WeChat은 개발자에게 데이터를 보냅니다. 메시지 처리 및 데이터 반환 WeChat으로 - WeChat은 반환된 데이터를 사용자에게 보냅니다. 그 동안 데이터 상호 작용은 XML을 통해 완료됩니다...

WeChat 공개 플랫폼에서 제공하는 인터페이스는 매우 간단합니다. 먼저 메시지 상호 작용 프로세스를 살펴보세요.

PHP 기본 튜토리얼 WeChat 공개 플랫폼 개발

말함 더 간단합니다. 사용자는 WeChat을 사용하여 메시지 보내기 -> WeChat은 개발자에게 데이터 보내기 -> 개발자는 메시지를 처리하고 WeChat에 데이터 반환 -> WeChat은 반환된 데이터를 보냅니다. 사용자에게 데이터를 전달하는 동안 데이터 상호 작용은 XML을 통해 완료됩니다.

WeChat 지능형 챗봇을 개발하려면 아래 예를 작성하세요.

  1. WeChat 공개 플랫폼 계정 등록
    WeChat 공개 플랫폼:
    https://mp.weixin.qq.com/
    참고: 현재 ID 카드 계정은 2개만 등록 가능합니다. 계정명은 V 인증과 관련이 있으니 신중하게 등록해 주세요.

  2. 서버/가상호스트 신청
    서버/가상호스트가 없는 아동용 신발은 BAE, SAE 사용 가능하며, 더 이상 소개가 필요하지 않습니다.

  3. 개발자 모드 활성화
    WeChat 공개 플랫폼에는 두 가지 모드가 있습니다. 하나는 편집 모드(바보 모드)로, 간단하지만 단일 기능이 있습니다. 또 하나는 개발을 통해 복잡한 기능을 구현할 수 있는 개발자 모드이다. 두 가지 모드는 상호 배타적입니다. 분명히 WeChat 공개 플랫폼에 로그인하고 "고급 기능" 메뉴를 통해 개발자 모드를 켜십시오.

  4. 인터페이스 구성 정보를 입력하세요
    "고급 기능" 메뉴에서도 구성되며 두 가지 매개변수를 구성해야 합니다.
    URL: 개발자 애플리케이션 액세스 주소, 현재 포트 80만 지원하며 "http:/ /www.YoonPer.com/weixin/index.php"를 예로 들 수 있습니다.
    TOKEN: 서명을 생성하고 싶은 내용을 입력하세요. "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

  1. WeChat 공개 플랫폼 기능 개발
    OK, 위에서 언급한 것처럼 WeChat 공개 플랫폼과 개발자 간의 데이터 상호 작용 물론 XML을 사용하므로 규격을 따라야 하므로 개발을 시작하기 전에 공식 인터페이스 문서에서 제공하는 XML 규격을 살펴보세요. 문자 메시지를 예로 들어보겠습니다.

사용자가 WeChat 공용 계정에 메시지를 보냅니다. 메시지를 보낼 때 WeChat 서버는 개발자에게 일부 데이터를 게시합니다.

<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><MsgId>1234567890123456MsgId>xml>
로그인 후 복사

개발자는 메시지를 처리한 후 WeChat 서버에 데이터를 반환해야 합니다.

<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,&#39;SimpleXMLElement&#39;,LIBXML_NOCDATA);
  $fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID)
  $toUsername = $postObj->ToUserName; //获取接收方账号
  $keyword = trim($postObj->Content); //获取消息内容
  $time = time(); //获取当前时间戳
  //---------- 返 回 数 据 ---------- //
  //返回消息模板
  $textTpl = "%s0";
  $msgType = "text"; //消息类型
  include(&#39;simsimi.php&#39;);
  $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" 콘텐츠가 포함된 메시지를 반환합니다.
다음으로 해야 할 일은 사용자 메시지를 기반으로 동적으로 결과를 반환하는 것입니다~

심심이(작은 노란 닭)는 현재 인기 있는 채팅 로봇입니다. 저는 CURL을 사용하고 키워드 A를 입력하는 무료 심심이(작은 노란 닭) 인터페이스를 개발했습니다. 텍스트 답변이 반환됩니다. 이 부분은 이 기사의 초점이 아니므로 더 이상 설명하지 않겠습니다.

/*-------------------------------------------------
|   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(&#39;;&#39;, $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[&#39;result&#39;] == &#39;200&#39; ) {
    return $content[&#39;sentence_resp&#39;];
  } else {
    return &#39;我还不会回答这个问题...&#39;;
  }
}
?>
로그인 후 복사

코드로 이동하면 위의 두 가지 코드를 통합하면 설명이 완료됩니다. WeChat 서버는 5초 이내에 응답을 받지 못합니다. 이 인터페이스를 통해 시간 초과가 발생할 수 있으며 SimSimi는 BAE 및 SAE에 대한 크롤링 요청을 차단했습니다. 더 빨리~

위 내용은 PHP 기본 튜토리얼 WeChat 공개 플랫폼 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿