從今天開始教程進入高階階段,請大家認真、專心,還有執著。如果真覺得學不下去的可以考慮用一些現成的第三方平臺,但是肯定不如自己開發來的個性化。
工具/原料
智慧手機
微信APP
電腦
方法/步驟
點選公眾平臺後臺導航的“高階功能”就可以進入,該頁面有兩個模式選擇,分別為“編輯模式”和“開發模式”,如下圖:
預設兩個模式都是關閉狀態,兩種模式不能同時開啟,點選開發模式區域進入開發模式設定頁面,如下圖:
1. 模式總開關。只有“成為開發者”後才可以開啟,這裡要注意的是由於編輯模式和開發模式不能同時開啟,使用開發模式前應先關閉編輯模式。
2. api介面文件。點選後可以檢視目前所有開放的介面使用詳細說明,包括開發用的SDK包。(SDK,Software Development Kit 的縮寫,中文即“軟體開發工具包”。廣義上指輔助開發某一類軟體的相關文件、範例和工具的集合。)
成為開發者。點選後會出現介面配置頁面,用來繫結自己伺服器上的程式介面與微信介面通訊,
來了解下微信開發模式有那些介面,清楚微信介面能做什麼不能做什麼有利於自己的產品設計,可以考慮自己的產品如何結合如何規劃。
由於微信本身是一個通訊工具,它所有的api介面都是基於一問一答的通訊機制,因此它的介面文件分為訊息推送(使用者在公眾平臺上行傳送 的訊息)和訊息回覆(響應使用者上行訊息反饋下發回覆的訊息),本教程除了目前已經公佈的介面外,還將劇透一部分將要開放的介面,比較特殊的訊息下發介面屬於最高級別介面,大部分開發者是拿不到的,所以不介紹了。
此類訊息即使用者向公眾賬號輸入文字傳送訊息,是公眾平臺接收到最多的訊息,也是最重要的搜尋、互動請求,因為語音識別還不成熟,圖片無法識別,地理位置用的場景也不多。
介面獲取到的訊息格式:
這裡先說下XML資料格式,它不僅是一種非常適合web傳輸的格式,還具有強大的資料索引、排序、查詢、相關一致性等特點,有些網站甚至拿XML來做資料庫,比如射手網,它結構非常簡單,看起來有點像html,可讀性比較強,微信開發介面的訊息傳遞主要在用這個。
有些人會覺得很頭大,其實不理解也沒關係,只要搞清楚它每次傳輸給你的有那些資料,你怎麼獲取這些資料就可以了。
文字訊息的資料欄位:
ToUserName:開發者微訊號(公眾賬號ID)
FromUserName:傳送方帳號(微信使用者的OPENID,每個微信使用者與每個公眾賬號是唯一的,不同公眾賬號同個使用者OPENID是不同的)
CreateTime:訊息建立時間
MsgType:訊息型別(文字訊息為text)
Content:訊息內容
MsgId:訊息的ID號
使用者使用圖片上傳發送訊息,應用場景:賬號註冊、隨手拍活動徵集、現場微信照片牆。
介面獲取到的訊息格式:
圖片訊息與文字訊息資料不同:
MsgType:訊息型別為image
PicUrl:圖片連結,該圖片儲存在微信的伺服器上,可以通過遠端抓取圖片程式儲存到本地。
微信將LBS當作一個互動資訊進行傳遞,比較常見的微信使用者之間傳送地理位置告知目的地所在,公眾號裡傳送地理位置搜尋周邊人、商家、資訊等。
介面獲取到的訊息格式:
地理位置訊息與文字訊息資料不同:
MsgType:訊息型別為location
Location_X、Location_Y、Scale:地理位置的經緯度和地圖縮放比例,用於第三方地圖介面的應用,搜尋周邊需要用到
Label:地理位置文字資訊,如某某城市某某路某某號,如果以城市為單位查詢直接拿這個就可以。
連結訊息
微收藏、印象筆記等用來儲存微信裡圖文訊息的應用就是使用的這個介面,使用者將連結傳送到該公眾賬號,公眾賬號通過連結抓取網頁內容然後收藏儲存。
介面獲取到的訊息格式:
連結訊息與文字訊息資料不同:
MsgType:訊息型別為link
Title:訊息標題
Description:訊息描述
Url:連結地址
語音訊息(未開放)
這個訊息介面並不在公開文件上,但事實上有不少微信應用已經在使用,比如路況電臺,不全面開放的原因我個人猜測是因為微信自己的語音識別還不理想,未來肯定會開放,想象一下對公眾賬號說句話後臺就能給反饋資訊多方便的功能。
介面獲取到的訊息格式:
語音訊息與文字訊息資料不同:
MsgType:訊息型別為voice
MediaId:語音訊息媒體id,可以呼叫相應介面獲取內容
Format:語音型別,如amr,speex,wav等,目前是使用的speex。
視訊訊息(未開放)
這個訊息介面也不在公開文件上,結構跟語音訊息差不多。
介面獲取到的訊息格式:
視訊訊息與文字訊息資料不同:
MsgType:訊息型別為video
MediaId:視訊訊息媒體id,可以呼叫相應介面獲取內容
ThumbMediaId:視訊訊息縮圖id,可以呼叫相應介面獲取內容
事件推送
這個介面很重要,目前只開放了使用者關注、使用者退訂,還有自定義選單按鈕相應的功能,部分測試的有使用者開啟公眾號提醒和自動傳送地理位置。也就是使用者不傳送任何內容也可以捕捉使用者行為做出回覆。
介面獲取到的訊息格式:
事件推送與文字訊息資料不同:
MsgType:訊息型別為event
Event:事件內容,subscribe(訂閱)、unsubscribe(取消訂閱)、CLICK(自定義選單點選事件)
EventKey:當用戶事件為點選自定義選單時,返回事件KEY值,與自定義選單介面中KEY值對應。
很多人在問如何知道使用者退訂的,其實就是這個訊息介面,
注意事項
訊息回覆需要注意的一點是從接收使用者傳送的訊息,到伺服器響應返回訊息,有效時間只有5秒鐘,超時的話使用者是無法接收到回覆訊息的。