天天看點

微信公衆賬号開發模式接入

        昨天把一個微信公衆号從“編輯模式”轉入了“開發模式”,搗鼓了一天,算是完成了該公衆号的個人開發計劃的第一步。這裡簡單記錄一下如何在公衆平台上“成為開發者”。

       1.填寫接口配置資訊。

       當我們申請完一個公衆号以後,在公衆平台登陸該賬号,選擇“功能-進階功能-開發模式” 。選擇開啟開發模式(一定要打開,否則很可能在代碼調試半天後發現沒有反應,實際上是開發模式沒打開)。

       在開啟開發模式前,系統會要求你先成為開發者。成為開發者需要兩個資訊:

微信公衆賬号開發模式接入

      URL對應的是你的網頁所在響應php檔案。比如我使用了公衆平台上面的wx_sample.php檔案來測試響應,而我的檔案可以通過www.test.com/testing/wx_sample.php進行通路,那麼我這裡就直接填寫www.test.com/testing/wx_sample.php。

      對應Token,如上所示為英文或數字,長3-32的任意串。可以随便給。比如我的公衆号是做英語學習的話,我可以填yingyu。

      這個時候點選“送出”可能會發現送出失敗,公衆平台上提示“反應逾時”之類的,這是因為我們還沒有把wx_sample.php修改好并放到我們指定的URL裡,這樣的話我們點選送出,系統向該URL發包,卻沒有收到URL指定php檔案的響應。自然會失敗了。是以我們需要執行下面的第二步。

       2.修改wx_sample.php響應。

       打開wx_sample.php檔案,在最開始有一句define語句:

       define("TOKEN", "weixin");

       這個示例中,把TOKEN定為了“weixin”。聯想起我們在第一步中也遇到過一個Token,其實這2者是對應的,必須相同。我們這裡需要把“weixin”改成在第一步中定下來的Token,這裡用的是“yingyu”。

       将這個修改好的檔案放到URL指定的位置,然後可以在公衆平台上點選送出了。如無意外會收到成功的提示:

微信公衆賬号開發模式接入

       完成上面2步,我們可以說就是已經完成公衆号的“開發模式“接入了。但是到目前為止,我們的所作所為其實都”沒有收到成效“——畢竟我們現在的公衆号對我們發出的消息是沒有任何響應的,我們也還沒有體驗過通過調試代碼來對該公衆号進行操控。下面第三步,我們将通過代碼來控制我們的公衆号——讓我們的公衆号對接收到的任意非空字元響應”Welcome to wechatworld!”

       3.文字響應消息。

       檢視wx_sample.php檔案,可以發現裡面其實已經寫有responseMsg函數,正是對任何非空字元響應welcome to wechatworld。我們需要做的是調用它。

      這裡把responseMsg放到valid函數裡面調用。每次使用者發送消息上來,valid函數通過checkSighature函數的判斷,确定消息是否來自微信伺服器。如果是,那麼調用responseMsg進行響應。

微信公衆賬号開發模式接入

另外要注意的點是responseMsg必須在exit前被調用,否則會退出該php,那麼就調用無效了。到這一步,我們基本算是體驗了一下微信公衆号的開發者接口入門了。後續要實作圖文響應、語音響應等,都是大同小異了。主要就是對xml和部分參數的調整,xml格式和參數等在公衆平台上都有詳細的解析。第四步會以一個圖文消息響應為例簡單說說。

    4. 圖文響應消息。

微信公衆賬号開發模式接入

    如上所示,首先要注意MsgType在這裡是news,差別于原來的文字響應(text),其次,這個示例的圖文消息是兩條并存,是以ArticleCount是2,代表底下是2個item。如果隻需要1個item,那麼這裡切記要改成1,去掉一個item。一個圖文消息最多可以有十個item并存。還有就是對于裡面各個變量的指派。在原來的文字響應中我們沒有提到是因為wx_sample.php裡面已經幫我們很好的完成了,不需要操心。這裡隻需要根據原來wx_sample.php裡的方法簡單修改一下就好。

    wx_sample.php文字響應的xml對應指派如下。有一點可能回引起不解地是在sprintf指派中,fromUsername變量和toUsername變量對應的指派似乎反了,分别對應了To和From。其實這沒有錯,因為對于發送過來的消息A,它存在發送方(使用者)和接收方(公衆号)。但是當我們回複消息時,我們的發送方與接收方應當是相反的,我們的發送方是我們自己,也就是公衆号,而接收方應當是使用者。之後的任何類型的響應消息的修改,也都是這個道理。

微信公衆賬号開發模式接入