公眾號服務(wù)器如何調(diào)試
公眾號服務(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)試