微信公眾號開發教程,公眾開發教程

來源:互聯網
上載者:User

公眾號開發教程,公眾開發教程

開發和調試之殤

公眾號的開發,說簡單也簡單,說麻煩也麻煩,麻煩的不是開發過程,而是搭建開發環境的過程。不過俗話說得好,磨刀不誤砍柴工,我們有必要花點時間來研究下如何攻破公眾號的開發環。說白了,公眾號的開發就是基於HTML/CSS/JS的移動端Web App的開發,但公眾號和普通的移動Web App開發還略有不同,因為很多情況下我們會調用公眾號的介面,而只要涉及介面的請求,都必須通過內建的瀏覽器來訪問,如果我們想把請求放到PC案頭瀏覽器上運行調試,就會跳轉到一個笑臉,提醒你出錯了(圖1)。

 

圖1 應用無法直接在PC瀏覽器中調試

這樣的安全機制和門檻是可以理解的,因為瀏覽器在Webkit核心的基礎上擴充了很多方法,也封裝了很多介面。此路是開,此樹是栽,要想開發公眾號,你就必須從此路過。這就意味著我們沒法直接在PC瀏覽器裡開發調試公眾號的頁面。那妝媒體的開發人員們是怎麼解決這個問題的呢?首先,我們要達成一個共識,在一個小小的手機上開發調試,實在施展不開,如果我們能在PC上進行開發,有Chrome的審查元素或Firefox的Firebug這樣的利器,何愁拿不下公眾號的開發?所以我們的目標是,在PC瀏覽器中進行公眾號的開發和調試,在手機上測試結果。我們只需要兩個步驟就可以實現這樣的效果。

第一,用代理訪問伺服器

不要被“Proxy 伺服器”這個名詞嚇到了,其實我們只要有一台筆記本,或者插有無線網卡的台式機就足以搭一個代理。這一步對於開發過移動端Web應用的開發人員來說,並不陌生,可能你也猜到了,這至關重要的第一步在的公眾號開發中同樣適用,下面我就簡單敘述一下。這裡主要為Windows提供方法,Mac/Linux的方法類似,點到為止,就不著重介紹了。

把電腦設定成Proxy 伺服器

  • 下載並安裝Fiddler2(如果是Windows 8,請下載Fiddler4;Mac/Linux使用者可以使用Charles/Nproxy等代理工具)。
  • 安裝後配置Fiddler:Fiddler菜單→Tools→Fiddler Options→Connections,2配置。

 

圖2 Fiddler配置過程

綁定hosts

  • 進入windows/stystem32/driver/etc/目錄。(Mac/Linux使用者的hosts目錄在/etc/下。)
  • 備份hosts檔案,並用記事本修改hosts檔案,在最後追加hosts,如:203.195.198.53 app.example.com。這裡的203.195.198.53是線上環境的伺服器IP,app.example.com是公眾號所請求的域。

設定手機Proxy 伺服器

  • 開始菜單→運行→cmd,開啟命令列視窗,輸入 ipconfig,找到自己的IP地址,如:192.168.2.102。
  • 以iPhone為例,進入設定→無線區域網路→選中自己的網路,設定Proxy 伺服器和連接埠,3中的配置。
Android手機也有類似配置功能,不詳細說明了。

 

圖3 手動設定HTTP代理 

原理及注意事項

  • 自己的電腦一定要和手機在同一個網路內,否則手機無法串連到Proxy 伺服器。
  • 當手機訪問app.example.com域的時候,會訪問Proxy 伺服器,而這個代理的hosts被設定成了我們指定的IP,所以訪問開發環境就如同在裡訪問公眾號一樣。

第二,開發設計Debug模式

如果說以上的第一點是一匹好馬,那這第二點就是一個好鞍。沒錯,好馬配上好鞍才能日行千裡。

要想在PC瀏覽器裡訪問請求公眾號介面的URL,這是不可能實現的,但是我們可以通過Debug模式繞過的介面,繼續執行介面以後的邏輯。方法有很多,需要開發人員們發揮想象,各顯神通。這裡是妝媒體的開發人員們提供的正在使用的一種方法,以供參考。

我們是通過URL後拼接參數來調起Debug模式,如:http://app.example.com/main.html?debug。

然後在代碼中判斷Debug並類比介面返回的資料,以此繞過公眾號的介面請求,這樣就可以順利地在PC瀏覽器裡開發和調試了。如:

i f ( w i n d o w . l o c a t i o n . h r e f .indexOf('?debug') > 0) {

// 類比公眾號介面返回的資料} else {

 // 訪問公眾號介面}




代碼部分

公眾平台

目錄(?)[+]

訊息介面指南返回
目錄[隱藏]
  • 1 簡介
  • 2 申請訊息介面
  • 3 網址接入
  • 4 訊息推送
    • 4.1 簡訊
    • 4.2 圖片訊息
    • 4.3 地理位置訊息
    • 4.4 連結訊息
    • 4.5 事件推送
  • 5 訊息回複
    • 5.1 回複簡訊
    • 5.2 回複音樂訊息
    • 5.3 回複圖文訊息
  • 6 注意事項
  • 7 範例程式碼
簡介

公眾平台訊息介面為開發人員提供了一種新的訊息處理方式。

申請訊息介面

點擊申請,填寫網址url和token,其中token可由開發人員可以任意填寫,用作產生簽名。


網址接入

公眾平台使用者提交資訊後,伺服器將發送GET請求到填寫的URL上,並且帶上四個參數:

參數 描述
signature 加密簽名
timestamp 時間戳記
nonce 隨機數
echostr 隨機字串

開發人員通過檢驗signature對請求進行校正(下面有校正方式)。若確認此次GET請求來自伺服器,請原樣返回echostr參數內容,則接入生效,否則接入失敗。

signature結合了開發人員填寫的token參數和請求中的timestamp參數、nonce參數。

加密/校正流程:1. 將token、timestamp、nonce三個參數進行字典序排序2. 將三個參數字串拼接成一個字串進行sha1加密3. 開發人員獲得加密後的字串可與signature對比,標識該請求來源於


訊息推送

當普通使用者向公眾帳號發訊息時,伺服器將POST該訊息到填寫的URL上。結構如下:

簡訊
 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName>  <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[this is a test]]></Content> <MsgId>1234567890123456</MsgId> </xml>
參數 描述
ToUserName 開發人員
FromUserName 發送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType text
Content 簡訊內容
MsgId 訊息id,64位整型
圖片訊息
 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>1348831860</CreateTime> <MsgType><![CDATA[image]]></MsgType> <PicUrl><![CDATA[this is a url]]></PicUrl> <MsgId>1234567890123456</MsgId> </xml>
參數 描述
ToUserName 開發人員
FromUserName 發送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType image
PicUrl 圖片連結
MsgId 訊息id,64位整型
地理位置訊息
<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1351776360</CreateTime><MsgType><![CDATA[location]]></MsgType><Location_X>23.134521</Location_X><Location_Y>113.358803</Location_Y><Scale>20</Scale><Label><![CDATA[位置資訊]]></Label><MsgId>1234567890123456</MsgId></xml> 
參數 描述
ToUserName 開發人員
FromUserName 發送方帳號(一個OpenID)
CreateTime 訊息建立時間 (整型)
MsgType location
Location_X 地理位置緯度
Location_Y 地理位置經度
Scale 地圖縮放大小
Label 地理位置資訊
MsgId 訊息id,64位整型
連結訊息
<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>1351776360</CreateTime><MsgType><![CDATA[link]]></MsgType><Title><![CDATA[公眾平台官網連結]]></Title><Description><![CDATA[公眾平台官網連結]]></Description><Url><![CDATA[url]]></Url><MsgId>1234567890123456</MsgId></xml> 
參數 描述
ToUserName 接收方號
FromUserName 發送方號,若為普通使用者,則是一個OpenID
CreateTime 訊息建立時間
MsgType 訊息類型,link
Title 訊息標題
Description 訊息描述
Url 訊息連結
MsgId 訊息id,64位整型
事件推送

事件推送只支援4.5版本,目前開啟自訂菜單介面事件推送、關注與取消追蹤事件推送。其餘功能即將開放,敬請期待。

<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[FromUser]]></FromUserName><CreateTime>123456789</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[EVENT]]></Event><EventKey><![CDATA[EVENTKEY]]></EventKey></xml>
參數 描述
ToUserName 接收方號
FromUserName 發送方號,若為普通使用者,則是一個OpenID
CreateTime 訊息建立時間
MsgType 訊息類型,event
Event 事件類型,subscribe(訂閱)、unsubscribe(取消訂閱)、CLICK(自訂菜單點擊事件)
EventKey 事件KEY值,與自訂菜單介面中KEY值對應
訊息回複

對於每一個POST請求,開發人員在響應包中返回特定xml結構,對該訊息進行響應(現支援回複文本、圖文、語音、視頻、音樂)。

伺服器在五秒內收不到響應會斷掉串連。

回複xml結構如下:

回複簡訊
 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[content]]></Content> </xml>
參數 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發人員號
CreateTime 訊息建立時間
MsgType text
Content 回複的訊息內容,長度不超過2048位元組
回複音樂訊息
 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[TITLE]]></Title> <Description><![CDATA[DESCRIPTION]]></Description> <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl> <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl> </Music> </xml>
參數 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發人員號
CreateTime 訊息建立時間
MsgType music
MusicUrl 音樂連結
HQMusicUrl 高品質音樂連結,WIFI環境優先使用該連結播放音樂
回複圖文訊息
 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>2</ArticleCount> <Articles> <item> <Title><![CDATA[title1]]></Title>  <Description><![CDATA[description1]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> <item> <Title><![CDATA[title]]></Title> <Description><![CDATA[description]]></Description> <PicUrl><![CDATA[picurl]]></PicUrl> <Url><![CDATA[url]]></Url> </item> </Articles> </xml> 
參數 描述
ToUserName 接收方帳號(收到的OpenID)
FromUserName 開發人員號
CreateTime 訊息建立時間
MsgType news
ArticleCount 圖文訊息個數,限制為10條以內
Articles 多條圖文訊息資訊,預設第一個item為大圖
Title 圖文訊息標題
Description 圖文訊息描述
PicUrl 圖片連結,支援JPG、PNG格式,較好的效果為大圖640*320,小圖80*80。
Url 點擊圖文訊息跳轉連結
注意事項

1.使用者OpenID對一個公眾號是固定唯一的串

2.請使用80連接埠


XP會不會比98更加充分的發揮硬體的性可以,從而使遊戲運行更順暢?

作為服役十餘年的系統,它已經迎來了自己的歸宿。現在,全世界的網友不禁為這一頑強存在於microsoft十餘載的系統肅然起敬。只有不斷地探索、嘗試、創新,才能使系統運行更人性化。這一點,是XP無法與7和8.1相媲美的。
 
php入門教程,我想學公眾平台開發有傳一下教程要簡單易懂的

推薦2個地方:
1、php100

www.php100.com/html/shipinjiaocheng/newz/
2、LAMP兄弟連
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.