學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 選購與維護(hù) > 電腦組裝教程 > 公眾號服務(wù)器如何調(diào)試

公眾號服務(wù)器如何調(diào)試

時(shí)間: 林澤1002 分享

公眾號服務(wù)器如何調(diào)試

  公眾號服務(wù)器是怎么回事呢,那么公眾號服務(wù)器如何調(diào)試的、下面是學(xué)習(xí)啦小編收集整理的公眾號服務(wù)器如何調(diào)試,希望對大家有幫助~~

  公眾號服務(wù)器的調(diào)試方法

  工具/原料

  電腦

  微信公眾號

  方法/步驟

  如果我們完全依賴接收到的消息來進(jìn)行調(diào)試,那我們將受到很多的限制,比如我們只能返回指定格式的消息才能在微信應(yīng)用中看到我們回復(fù)的內(nèi)容,如果我們的服務(wù)器報(bào)錯(cuò),我們將無法知道確切的錯(cuò)誤信息,所以我們需要一個(gè)能代替微信服務(wù)器來給我們的公眾號服務(wù)器發(fā)送消息并且能顯示我們返回的任何消息格式的工具.

  幸運(yùn)的是我們在網(wǎng)上可以找到這樣一個(gè)工具`webbot-cli`,這個(gè)工具的地址是開源的,源碼地址是: https://github.com/node-webot/webot-cli/blob/master/README.md這是一個(gè)nodejs編寫的工具,要安裝這個(gè)工具我們首先需要安裝nodejs開發(fā)環(huán)境.這里是nodejs的官網(wǎng) https://nodejs.org/, 按照官網(wǎng)的指示一步步安裝就OK了.安裝完成后我們可以利用`npm`工具安裝這個(gè)模擬開發(fā)調(diào)試工具.安裝命令是: npm install webot-cli -g

  安裝這個(gè)工具需要管理員權(quán)限,所以mac和linux用戶可能需要使用`sudo`.

  安裝完成后我們介紹一個(gè)這個(gè)工具的使用.我們直接在命令行調(diào)用如下命令就會開始運(yùn)行這個(gè)工具,

  webot send --token weixin --des http://weixinshow001.sinaapp.com

  其中`weixin` 為我們之前配置的token參數(shù),`http://weixinshow001.sinaapp.com` 為我們公眾平臺的服務(wù)器地址.大家需要把這兩個(gè)參數(shù)更改為自己的.

  程序的運(yùn)行界面長得是這個(gè)樣子的:

  運(yùn)行成功時(shí)會回顯剛才傳進(jìn)去的url和token.這里我們簡單地測試一條text消息,選中狀態(tài)下回車會進(jìn)入文本輸入界面.

  我們隨便輸入一些文字,然后點(diǎn)擊回車發(fā)送.然后我們看到一個(gè)錯(cuò)誤,這是為啥呢?

  原因是這樣的,這個(gè)工具并未完全按照微信官方的消息格式發(fā)送,微信官方的服務(wù)器在發(fā)送消息時(shí)并沒有在GET字段中添加`echostr`項(xiàng),而這個(gè)工具會在任意一條消息發(fā)送`echostr`字段.我們之前使用的wechat-php庫是使用這個(gè)字段來判斷是否是token驗(yàn)證特殊請求的,如果是token驗(yàn)證特殊請求就會返回echostr字段并且終止后續(xù)操作,于是造成了這個(gè)錯(cuò)誤的產(chǎn)生.現(xiàn)在我們修改一下我們的庫來兼容這個(gè)測試庫.

  我們打開`Wechat.php`文件,在文件中找到`isValidateIncomingConn`函數(shù),這個(gè)函數(shù)是用來判斷這一個(gè)請求是否是token驗(yàn)證請求的.我們更改為一下內(nèi)容:

  /**

  * 判斷此次請求是否為驗(yàn)證請求

  *

  * @return boolean

  */

  private function isValidateIncomingConn() {

  // 新內(nèi)容,對請求是否有POST數(shù)據(jù)進(jìn)行判斷

  // 因?yàn)閠oken驗(yàn)證請求是一個(gè)GET請求,是沒有POST數(shù)據(jù)的

  return isset($_GET['echostr']) and !isset($GLOBALS['HTTP_RAW_POST_DATA']);

  // 以前的判斷,只判斷了GET字段

  //return isset($_GET['echostr']);

  }

  完成更高后上傳到SAE的服務(wù)器使之生效,然后重新在`webot`中發(fā)送文本消息,我們就可以看到正確的回顯了.

  10基于這種調(diào)試方式,我們甚至可以再本地服務(wù)器上調(diào)試了!基于這種調(diào)試方式,我們甚至可以再本地服務(wù)器上調(diào)試了!基于這種調(diào)試方式,我們甚至可以再本地服務(wù)器上調(diào)試了!只要把調(diào)試工具的url參數(shù)設(shè)置成本地url就ok了.

公眾號服務(wù)器如何調(diào)試相關(guān)文章:

1.如何在本地搭建服務(wù)進(jìn)行程調(diào)試

2.怎么設(shè)置飛魚星微信認(rèn)證

3.如何設(shè)置微信認(rèn)證+Web認(rèn)證

4.路由器如何設(shè)置微信認(rèn)證

5.飛魚星路由器微信認(rèn)證怎么設(shè)置

3385955