Heim  >  Artikel  >  Backend-Entwicklung  >  Grundlegendes PHP-Tutorial zur Entwicklung der öffentlichen WeChat-Plattform

Grundlegendes PHP-Tutorial zur Entwicklung der öffentlichen WeChat-Plattform

巴扎黑
巴扎黑Original
2017-08-17 09:06:591355Durchsuche


Zusammenfassung: Die von der öffentlichen WeChat-Plattform bereitgestellte Schnittstelle ist zunächst sehr einfach: Schauen wir uns zunächst den Nachrichteninteraktionsprozess an: Um es einfacher auszudrücken: Benutzer verwenden WeChat zum Senden von Nachrichten – WeChat überträgt Daten An Entwickler senden – Der Entwickler verarbeitet die Nachricht und gibt die Daten an WeChat zurück – WeChat sendet die zurückgegebenen Daten an den Benutzer, während dessen die Dateninteraktion über XML abgeschlossen wird, das war's...

Öffentliche WeChat-Plattform Die bereitgestellte Schnittstelle ist sehr einfach. Schauen wir uns zunächst den Nachrichteninteraktionsprozess an:

Grundlegendes PHP-Tutorial zur Entwicklung der öffentlichen WeChat-Plattform

An Einfacher ausgedrückt: Benutzer verwenden WeChat, um Nachrichten zu senden –> WeChat sendet Daten an den Autor –> wird über XML vervollständigt. So einfach ist das.

Schreiben Sie unten ein Beispiel für die Entwicklung eines intelligenten WeChat-Chatbots:

  1. Registrieren Sie ein öffentliches WeChat-Plattformkonto
    Öffentliche WeChat-Plattform:
    https://mp.weixin.qq.com/
    Hinweis: Derzeit können nur zwei Konten mit einem Ausweis registriert werden. Der Kontoname bezieht sich auf die V-added-Authentifizierung. Bitte registrieren Sie sich daher sorgfältig.

  2. Server/virtuellen Host beantragen
    Kinderschuhe ohne Server/virtuellen Host können BAE und SAE verwenden, keine weitere Einführung.

  3. Entwicklermodus aktivieren
    Die öffentliche WeChat-Plattform verfügt über zwei Modi, einer ist der Bearbeitungsmodus (Narrenmodus), der einfach ist, aber nur eine einzige Funktion hat. Der andere ist der Entwicklermodus, der komplexe Funktionen durch Entwicklung implementieren kann. Die beiden Modi schließen sich natürlich gegenseitig aus. Melden Sie sich bei der öffentlichen WeChat-Plattform an und aktivieren Sie den Entwicklermodus über das Menü „Erweiterte Funktionen“.

  4. Geben Sie die Schnittstellenkonfigurationsinformationen ein.
    Diese werden auch im Menü „Erweiterte Funktionen“ konfiguriert. Zwei Parameter müssen konfiguriert werden:
    URL: Zugriffsadresse für die Entwickleranwendung. Derzeit wird nur Port 80 unterstützt. Nehmen Sie als Beispiel „http://www.YoonPer.com/weixin/index.php“.
    TOKEN: Geben Sie alles ein, was Sie zum Generieren einer Signatur benötigen, nehmen Sie „YoonPer“ als Beispiel.
    Speichern Sie nach dem Ausfüllen den folgenden Code als index.php, laden Sie ihn in das Verzeichnis http://www.YoonPer.com/weixin/ hoch und klicken Sie abschließend auf „Senden“, um die Überprüfung abzuschließen.

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;
    }
  }
}
?>

Tatsächlich überprüft die öffentliche WeChat-Plattform, ob der Zugriff auf die URL korrekt ist. Die Datei kann nach der Überprüfung gelöscht werden . Ich werde es nicht im Detail erklären. Wenn Sie sich für Kinderschuhe interessieren, können Sie sich die offizielle Dokumentation ansehen.
API-Dokument der öffentlichen WeChat-Plattform: http://mp.weixin.qq.com/wiki/index.php

  1. Entwicklung der Funktionen der öffentlichen WeChat-Plattform
    OK, oben erwähnt Hier erfolgt die Dateninteraktion zwischen der öffentlichen WeChat-Plattform und den Entwicklern über XML. Da XML verwendet wird, muss es natürlich den Spezifikationen entsprechen. Schauen Sie sich daher vor Beginn der Entwicklung die XML-Spezifikationen an, die im offiziellen Schnittstellendokument bereitgestellt werden Textnachrichten als Beispiel. :

Wenn ein Benutzer eine Nachricht an ein öffentliches WeChat-Konto sendet, sendet der WeChat-Server einige Daten an den Entwickler:

<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><MsgId>1234567890123456MsgId>xml>

Der Entwickler muss dies nach der Verarbeitung der Nachricht tun. Daten an den WeChat-Server zurücksenden:

<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><FuncFlag>0FuncFlag>xml>

Zusätzlich zu Textnachrichten unterstützt die öffentliche WeChat-Plattform Benutzer auch beim Senden von Bildnachrichten, Standortnachrichten und Linknachrichten , und Event Push, und Entwickler können auch auf die öffentliche WeChat-Plattform antworten. Musiknachrichten, grafische Nachrichten und verschiedene Nachrichten-XML-Spezifikationen sind auch in offiziellen Dokumenten zu finden.

Schauen wir uns ein offizielles PHP-Beispiel an:

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; //输出结果
 }
}
?>

Speichern Sie den Code als index.php und laden Sie ihn auf http://www.YoonPer.com hoch /weixin/-Verzeichnis: Wenn die Datei gerade nicht gelöscht wurde, wird sie direkt überschrieben.

Jetzt senden Benutzer beliebige Nachrichten über die öffentliche WeChat-Plattform und das öffentliche Konto sendet eine Nachricht mit dem Inhalt „http://www.YoonPer.com“ zurück.
Als nächstes müssen Sie dynamisch Ergebnisse basierend auf Benutzernachrichten zurückgeben ~

SimSimi (Little Yellow Chicken) ist derzeit ein beliebter Chat-Roboter, mit dem ich einen kostenlosen SimSimi (Little Yellow Chicken) entwickelt habe CURL-Schnittstelle, die Eingabe von Schlüsselwörtern gibt eine Textantwort zurück. Dieser Teil steht nicht im Mittelpunkt dieses Artikels, daher werde ich ihn nicht weiter erläutern:

/*-------------------------------------------------
|   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;;
  }
}
?>

Integrieren Sie die beiden oben genannten Codeteile und Sie sind fertig. Eines muss erklärt werden: Der WeChat-Server wird die Verbindung trennen, wenn er nicht innerhalb von 5 Sekunden eine Antwort erhält, und SimSimi hat Crawl-Anfragen auf BAE und SAE blockiert . Es wird empfohlen, die offizielle kostenpflichtige API von SimSimi zu verwenden, die schneller ist~

Das obige ist der detaillierte Inhalt vonGrundlegendes PHP-Tutorial zur Entwicklung der öffentlichen WeChat-Plattform. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn