微信開發實戰(5)—粉絲關注開發者公眾號時,自動回覆訊息
微信開發實戰(5)—粉絲關注開發者公眾號時,自動回覆訊息
本篇文章對應原始碼下載:
javaweixin-v1.1
連結:http://pan.baidu.com/s/1pLk1oiZ
密碼:7uba
上篇文章主要介紹了URL、Token認證,以及使用免費的新浪SAE伺服器搭建公眾號的web應用。相信按照文章講解,開發者們已經成功地完成了開發者公眾號的配置。
上篇文章提到,URL還有一個作用:認證通過之後,URL就作為開發者伺服器與微信伺服器之間互動通訊的橋樑。本篇文章就來實現此功能:關注開發者號時,自動回覆文字訊息。
一、URL的POST方法
如果你看了WxApiController.Java 這個類原始碼,你會發現在URL、Token認證的的時候,http請求的method用的是GET。
那麼微信伺服器和開發者伺服器也用此URL進行通訊,會不會與Token認證衝突呢?顯然是不會的,因為訊息互動通訊http請求用的是POST方法:
(詳見原始碼)
二、接收事件推送介面
粉絲關注公眾號時,觸發的是訂閱事件,介面文件如下:
http://mp.weixin.qq.com/wiki/7/9f89d962eba4c5924ed95b513ba69d9b.html
細節不再贅述,參考文件即可。
注意:
原始碼中將ToUserName、FromUserName等引數進行了包裝;
傳送時的ToUserName是回覆時的FromUserName,
傳送時的FromUserName是回覆時的ToUserName;
三、訊息互動原理
在“開發者公眾號的互動原理 ”這篇文章中講解過,此處不再細講,如下圖:
很顯然的,當前公眾號是開發者號,會把訂閱事件訊息包裝成XML資料(第4、5步),轉發給開發者伺服器。開發者伺服器針對訊息進行業務處理(原始碼中回覆一條文字),轉換為XML回覆給微信平臺伺服器。
四、V1.1—原始碼結構介紹
在上篇原始碼(V1.0)的基礎上,V1.1新增了api包。主要作用是處理微信伺服器傳送來的訊息,將訊息轉換為MsgRequest。
再將回復訊息轉換為MsgResponse,和對應的XML資料,返回給微信平臺。也就是上一步流程圖中流轉過程。詳細請參考原始碼。
其中,MsgHandler.java中設定自動回覆內容:
五、新浪SAE釋出,並關注測試號
如上篇文章一樣,登入sae,上傳war包部署:
5.1,進入選單“應用 》程式碼管理”,上傳war包
上傳成功,訪問應用首頁看是否正常(如前一篇)。
5.2,關注測試號,檢視回復訊息
就是程式碼中的設定的內容,成功了!!
相關文章
- 微信公眾號被關注後如何回覆多條訊息?
- 海外微信公眾號不能設定被關注自動回覆訊息解決方案
- 微信開發——同步粉絲、群發訊息
- 微信公眾號開發之客服訊息
- 微信公眾號自動回覆_JavaJava
- Java微信公眾號開發之使用攔截器獲取粉絲openIDJava
- 微信公眾號開發
- 微信公眾號開發(二)識別訊息型別型別
- 使用easywechat給關注公眾號使用者發訊息
- 微信公眾號快速開發(二)專案搭建與被動回覆
- 微信公眾號自動回覆新增檔案
- tp5+ionic開發微信公眾號專案實戰教程
- 微信公眾號開發-分享
- Nodejs微信公眾號開發NodeJS
- .net開發微信公眾號
- 微信公眾號之自動回覆文字 -- PHPPHP
- 微信公眾號開發5-自定義選單-微信開發phpPHP
- PHP微信開發——自動回覆PHP
- 微信關注自動回覆功能 (更新 : 同時回覆兩條資訊)
- PHP微信開發之模板訊息回覆PHP
- Java微信公眾平臺開發(四)--回覆訊息的分類及實體的建立Java
- tp5+ionic開發微信公眾號專案實戰專案教程
- 微信公眾號開發之坑(一)
- Python+Tornado開發微信公眾號Python
- PHP微信公眾號開發——公共方法PHP
- 【Java】微信公眾號開發筆記Java筆記
- Laravel+easywechat 開發微信公眾號Laravel
- Go 實戰丨微信公眾號接入及使用者訊息處理Go
- 「實用」微信掃碼 - 關注公眾號後網站自動登入網站
- 4.PHP微信公眾平臺開發 - 簡單回覆功能開發PHP
- 微信開發系列之一 - 微信公眾號開發的開發環境搭建開發環境
- 【微信部落】tp5+ionic開發微信公眾號商城系統
- 微信公眾號測試號開發小結
- 監聽微信公眾號訊息,監聽微信訊息推送
- Spring Boot 開發微信公眾號後臺Spring Boot
- 微信公眾號開發推送事件排重事件
- 微信公眾號支付開發手記(node)
- 記一次微信公眾號開發
- 微信公眾號開發Django JSSDK授權DjangoJS