微信公眾平臺(tái)提供的接口很簡(jiǎn)單,先看看消息交互流程

2023-12-07    分類(lèi): 網(wǎng)站建設(shè)

微信公眾平臺(tái)提供的界面很簡(jiǎn)單,我們來(lái)看看消息交互過(guò)程:

通俗的講,用戶使用微信發(fā)送消息->微信給開(kāi)發(fā)者發(fā)送數(shù)據(jù)->開(kāi)發(fā)者處理消息并返回?cái)?shù)據(jù)給微信->微信將返回的數(shù)據(jù)發(fā)送給用戶,其間數(shù)據(jù)交互是通過(guò) XML 完成的。就這么簡(jiǎn)單。

下面寫(xiě)一個(gè)例子來(lái)開(kāi)發(fā)一個(gè)微信智能聊天機(jī)器人:

1.注冊(cè)微信公眾平臺(tái)賬號(hào)

微信公眾平臺(tái):

注意:目前一張身份證只能注冊(cè)兩個(gè)賬號(hào)。賬號(hào)名與V認(rèn)證相關(guān)。請(qǐng)謹(jǐn)慎注冊(cè)。

2.申請(qǐng)服務(wù)器/虛擬主機(jī)

沒(méi)有服務(wù)器/虛擬主機(jī)的童鞋可以使用bAE和SAE,不多介紹。

3.開(kāi)啟開(kāi)發(fā)者模式

微信公眾平臺(tái)有兩種模式,一種是編輯模式(傻瓜模式),簡(jiǎn)單但功能單一。另一種是開(kāi)發(fā)者模式,可以通過(guò)開(kāi)發(fā)實(shí)現(xiàn)復(fù)雜的功能。這兩種模式是相互排斥的。顯然,登錄微信公眾平臺(tái),通過(guò)“高級(jí)功能”菜單開(kāi)啟開(kāi)發(fā)者模式。

4.填寫(xiě)接口配置信息

也是在“ ”菜單中配置的,需要配置兩個(gè)參數(shù):

URL:開(kāi)發(fā)者應(yīng)用訪問(wèn)地址,目前僅支持80端口,以“”為例。

:隨意填寫(xiě),用于生成簽名,以“”為例。

填寫(xiě)完成后,將以下代碼另存為.php并上傳到目錄,最后點(diǎn)擊“提交”完成驗(yàn)證。


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


這個(gè)東西就是微信公眾平臺(tái)驗(yàn)證網(wǎng)址是否被正確訪問(wèn)。研究代碼沒(méi)有實(shí)質(zhì)性意義。確認(rèn)無(wú)誤后,即可刪除該文件。它不會(huì)詳細(xì)解釋。對(duì)童鞋感興趣的可以查看官方文檔。

微信公眾平臺(tái)ApI文檔:

5.微信公眾平臺(tái)功能開(kāi)發(fā)

好的,如上所述,微信公眾平臺(tái)和開(kāi)發(fā)者之間的數(shù)據(jù)交互是通過(guò)XML來(lái)完成的。既然用了XML微信公眾平臺(tái)開(kāi)發(fā) php,當(dāng)然要遵循規(guī)范,所以在著手開(kāi)發(fā)規(guī)范之前,先看看官方接口文檔提供的XML,以短信為例:

當(dāng)用戶向微信公眾號(hào)發(fā)送消息時(shí),微信服務(wù)器會(huì)pOST一些數(shù)據(jù)給開(kāi)發(fā)者:

開(kāi)發(fā)者處理消息后需要將數(shù)據(jù)返回給微信服務(wù)器:

微信公眾平臺(tái)除了短信之外,還支持用戶發(fā)送圖片信息、地理位置信息、鏈接信息、事件推送。開(kāi)發(fā)者也可以在微信公眾平臺(tái)回復(fù)音樂(lè)消息和圖文消息。各種消息的XML規(guī)范也可以參考官方文檔。

來(lái)看一個(gè)官方的pHp例子,我做了一些簡(jiǎn)化:

responseMsg();
class wechat {
 public function responseMsg() {
  //---------- 接 收 數(shù) 據(jù) ---------- //
  $postStr = $GLObALS["HTTp_RAW_pOST_DATA"]; //獲取pOST數(shù)據(jù)
  //用SimpleXML解析pOST過(guò)來(lái)的XML數(shù)據(jù)
  $postObj = simplexml_load_string($postStr,'SimpleXMLElement',LIbXML_NOCDATA);
  $fromUsername = $postObj->FromUserName; //獲取發(fā)送方帳號(hào)(OpenID)
  $toUsername = $postObj->ToUserName; //獲取接收方賬號(hào)
  $keyword = trim($postObj->Content); //獲取消息內(nèi)容
  $time = time(); //獲取當(dāng)前時(shí)間戳
  //---------- 返 回 數(shù) 據(jù) ---------- //
  //返回消息模板
  $textTpl = "%s0";
  $msgType = "text"; //消息類(lèi)型
  include('simsimi.php');
  $contentStr = simsimi($keyword); //返回消息內(nèi)容
  //格式化消息模板
  $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
  echo $resultStr; //輸出結(jié)果
 }
}
?>

將代碼保存為 .php 并上傳到目錄。如果剛才沒(méi)有刪除文件,會(huì)被覆蓋。

現(xiàn)在用戶通過(guò)微信公眾平臺(tái)發(fā)送任何消息時(shí),公眾號(hào)都會(huì)返回一條內(nèi)容為“”的消息。

接下來(lái)要做的是根據(jù)用戶的消息動(dòng)態(tài)返回結(jié)果~

(小黃雞)目前是一個(gè)熱門(mén)聊天機(jī)器人。我使用 CURL 開(kāi)發(fā)了一個(gè)免費(fèi)的(小黃雞)界面。輸入關(guān)鍵字將返回文本響應(yīng)。這部分不是本文的重點(diǎn),不再贅述。 ,直接上傳代碼(2014.07.28更新):

將以上兩段代碼整合在一起微信公眾平臺(tái)開(kāi)發(fā) php,就大功告成了。需要說(shuō)明的是,微信服務(wù)器如果在5秒內(nèi)沒(méi)有收到響應(yīng),就會(huì)斷開(kāi)連接,可能通過(guò)這個(gè)接口超時(shí),bAE和SAE已經(jīng)被阻塞了。對(duì)于爬取請(qǐng)求,建議使用官方付費(fèi)ApI,速度更快~

希望這篇文章對(duì)大家開(kāi)發(fā)基于php的微信公眾平臺(tái)有幫助。

本文名稱(chēng):微信公眾平臺(tái)提供的接口很簡(jiǎn)單,先看看消息交互流程
轉(zhuǎn)載來(lái)源:http://www.muchs.cn/news27/299777.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)電子商務(wù)、靜態(tài)網(wǎng)站、網(wǎng)站排名、網(wǎng)站收錄、小程序開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷(xiāo)型網(wǎng)站建設(shè)