微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

2017-02-24|HiShop
導讀:開發(fā)模式簡介 點擊公眾平臺后臺導航的高級功能就可以進入,該頁面有兩個模式選擇,分別為編輯模式和開發(fā)模式,如下圖: 默認兩個模式都是關閉狀態(tài),兩種模式不能同時開啟,點...

  開發(fā)模式簡介

  點擊公眾平臺后臺導航的“高級功能”就可以進入,該頁面有兩個模式選擇,分別為“編輯模式”和“開發(fā)模式”,如下圖:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  默認兩個模式都是關閉狀態(tài),兩種模式不能同時開啟,點擊開發(fā)模式區(qū)域進入開發(fā)模式設置頁面,如下圖:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  模式總開關。只有“成為開發(fā)者”后才可以開啟,這里要注意的是由于編輯模式和開發(fā)模式不能同時開啟,使用開發(fā)模式前應先關閉編輯模式。

  api接口文檔。點擊后可以查看目前所有開放的接口使用詳細說明,包括開發(fā)用的SDK包。(SDK,Software Development Kit 的縮寫,中文即“軟件開發(fā)工具包”。廣義上指輔助開發(fā)某一類軟件的相關文檔、范例和工具的集合。)

  成為開發(fā)者。點擊后會出現(xiàn)接口配置頁面,用來綁定自己服務器上的程序接口與微信接口通訊,具體的操作將在第九章介紹。

  二、api接口文檔簡介

  首先來了解下微信開發(fā)模式有那些接口,清楚微信接口能做什么不能做什么有利于自己的產(chǎn)品設計,可以考慮自己的產(chǎn)品如何結(jié)合如何規(guī)劃。

  由于微信本身是一個通訊工具,它所有的api接口都是基于一問一答的通訊機制,因此它的接口文檔分為消息推送(用戶在公眾平臺上行發(fā)送 的消息)和消息回復(響應用戶上行消息反饋下發(fā)回復的消息),本教程除了目前已經(jīng)公布的接口外,還將劇透一部分將要開放的接口,比較特殊的消息下發(fā)接口屬于最高級別接口,大部分開發(fā)者是拿不到的,所以不介紹了。

  消息推送(即公眾賬號能接收到的用戶消息請求)

  1、文本消息

  此類消息即用戶向公眾賬號輸入文本發(fā)送消息,是公眾平臺接收到最多的消息,也是最重要的搜索、互動請求,因為語音識別還不成熟,圖片無法識別,地理位置用的場景也不多。

  接口獲取到的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  這里先說下XML數(shù)據(jù)格式,它不僅是一種非常適合web傳輸?shù)母袷?,還具有強大的數(shù)據(jù)索引、排序、查找、相關一致性等特點,有些網(wǎng)站甚至拿XML來做數(shù)據(jù)庫,比如射手網(wǎng),它結(jié)構(gòu)非常簡單,看起來有點像html,可讀性比較強,微信開發(fā)接口的消息傳遞主要在用這個。

  有些人會覺得很頭大,其實不理解也沒關系,只要搞清楚它每次傳輸給你的有那些數(shù)據(jù),你怎么獲取這些數(shù)據(jù)就可以了。

  文本消息的數(shù)據(jù)字段:

  ToUserName:開發(fā)者微信號(公眾賬號ID)

  FromUserName:發(fā)送方帳號(微信用戶的OPENID,每個微信用戶與每個公眾賬號是唯一的,不同公眾賬號同個用戶OPENID是不同的)

  CreateTime:消息創(chuàng)建時間

  MsgType:消息類型(文本消息為text)

  Content:消息內(nèi)容

  MsgId:消息的ID號

  2、圖片消息

  用戶使用圖片上傳發(fā)送消息,應用場景:賬號注冊、隨手拍活動征集、現(xiàn)場微信照片墻。

  接口獲取到的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  圖片消息與文本消息數(shù)據(jù)不同:

  MsgType:消息類型為image

  PicUrl:圖片鏈接,該圖片保存在微信的服務器上,可以通過遠程抓取圖片程序保存到本地。

  3、地理位置消息

  微信將LBS當作一個交互信息進行傳遞,比較常見的微信用戶之間發(fā)送地理位置告知目的地所在,公眾號里發(fā)送地理位置搜索周邊人、商家、信息等。

  接口獲取到的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  地理位置消息與文本消息數(shù)據(jù)不同:

  MsgType:消息類型為location

  Location_X、Location_Y、Scale:地理位置的經(jīng)緯度和地圖縮放比例,用于第三方地圖接口的應用,搜索周邊需要用到

  Label:地理位置文字信息,如某某城市某某路某某號,如果以城市為單位查詢直接拿這個就可以。

  4、鏈接消息

  微收藏、印象筆記等用來保存微信里圖文消息的應用就是使用的這個接口,用戶將鏈接發(fā)送到該公眾賬號,公眾賬號通過鏈接抓取網(wǎng)頁內(nèi)容然后收藏保存。

  接口獲取到的消息格式:

  鏈接消息與文本消息數(shù)據(jù)不同:

  MsgType:消息類型為link

  Title:消息標題

  Description:消息描述

  Url:鏈接地址

  5、語音消息(未開放)

  這個消息接口并不在公開文檔上,但事實上有不少微信應用已經(jīng)在使用,比如路況電臺,不全面開放的原因我個人猜測是因為微信自己的語音識別還不理想,未來肯定會開放,想象一下對公眾賬號說句話后臺就能給反饋信息多方便的功能。

  接口獲取到的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  語音消息與文本消息數(shù)據(jù)不同:

  MsgType:消息類型為voice

  MediaId:語音消息媒體id,可以調(diào)用相應接口獲取內(nèi)容

  Format:語音類型,如amr,speex,wav等,目前是使用的speex。

  6、視頻消息(未開放)

  這個消息接口也不在公開文檔上,結(jié)構(gòu)跟語音消息差不多。

  接口獲取到的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  視頻消息與文本消息數(shù)據(jù)不同:

  MsgType:消息類型為video

  MediaId:視頻消息媒體id,可以調(diào)用相應接口獲取內(nèi)容

  ThumbMediaId:視頻消息縮略圖id,可以調(diào)用相應接口獲取內(nèi)容

  7、事件推送

  這個接口很重要,目前只開放了用戶關注、用戶退訂,還有自定義菜單按鈕相應的功能,部分測試的有用戶打開公眾號提醒和自動發(fā)送地理位置。也就是用戶不發(fā)送任何內(nèi)容也可以捕捉用戶行為做出回復。

  接口獲取到的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  事件推送與文本消息數(shù)據(jù)不同:

  MsgType:消息類型為event

  Event:事件內(nèi)容,subscribe(訂閱)、unsubscribe(取消訂閱)、CLICK(自定義菜單點擊事件)

  EventKey:當用戶事件為點擊自定義菜單時,返回事件KEY值,與自定義菜單接口中KEY值對應。

  很多人在問如何知道用戶退訂的,其實就是這個消息接口,另外3月26日后將用戶關注消息也從文本消息改為了事件推送。

  消息回復(即公眾賬號在接收到用戶消息后下發(fā)回復消息)

  消息回復需要注意的一點是從接收用戶發(fā)送的消息,到服務器響應返回消息,有效時間只有5秒鐘,超時的話用戶是無法接收到回復消息的。

  1、回復文本消息

  文字閱讀要比其他方式的閱讀成本低,所以能用文本的地方咱們就盡量用文本。

  接口下發(fā)的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  回復文本消息的數(shù)據(jù)字段:

  ToUserName:發(fā)送方帳號(微信用戶的OPENID,每個微信用戶與每個公眾賬號是唯一的,不同公眾賬號同個用戶OPENID是不同的)

  FromUserName:開發(fā)者微信號(公眾賬號ID)

  CreateTime:回復消息創(chuàng)建時間

  MsgType:回復消息類型(文本消息為text)

  Content:回復消息內(nèi)容(長度不超過2048字節(jié))

  FuncFlag:設置為1的時候,自動星標剛才接收到的消息,適合活動統(tǒng)計使用

  2、回復圖片消息(未開放)

  這是個未公開的接口,現(xiàn)在使用開發(fā)模式最苦逼的就是沒法回復圖片,還不如編輯模式,啥都能回復!

  接口下發(fā)的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  與回復文本消息的數(shù)據(jù)字段的不同:

  MsgType:回復消息類型為image

  MediaId: 圖片的id,需要通過其他接口上傳圖片獲得

  上傳圖片限制:1MB,支持JPG格式

  3、回復語音消息(未開放)

  這是個未公開的接口,語音消息展現(xiàn)形式跟音樂消息還是不一樣的,也不會出現(xiàn)某些安卓版微信無法播放音樂消息的情況。

  接口下發(fā)的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  與回復文本消息的數(shù)據(jù)字段的不同:

  MsgType:回復消息類型為voice

  MediaId: 語音的id,需要通過其他接口上傳語音獲得

  上傳語音限制:1MB,播放長度不超過60s,支持AMR格式

  4、回復視頻消息(未開放)

  這是個未公開的接口,和圖片消息差不多。

  接口下發(fā)的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  與回復文本消息的數(shù)據(jù)字段的不同:

  MsgType:回復消息類型為video

  MediaId: 視頻的id,需要通過其他接口上傳視頻獲得

  ThumbMediaId:縮略圖的id,通過上傳圖片(80*80)得到id

  視頻限制:10MB,支持MP4格式

  縮略圖限制:64KB,支持JPG格式

  5、回復音樂消息

  很多人問我為什么可以播放音樂,沒什么秘密,就是用這個接口了。

  接口下發(fā)的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  與回復文本消息的數(shù)據(jù)字段的不同:

  MsgType:回復消息類型為music

  Title: 音樂標題,我經(jīng)常是放歌名

  Description: 音樂描述,我經(jīng)常是放歌手名字

  MusicUrl: 音樂鏈接,支持MP3、WMV、AAC等在線音樂格式

  HQMusicUrl:高質(zhì)量音樂鏈接,WIFI環(huán)境優(yōu)先使用該鏈接播放音樂,可以和上面的一樣。

  6、回復圖文消息

  開發(fā)模式里最喜歡的就是這個了,比如可以用多圖文消息做個歡迎菜單,可以做圖文歷史文章查詢。

  接口下發(fā)的消息格式:

  

微信公眾平臺技術實操(7):公眾平臺開發(fā)模式

 

  MsgType:回復消息類型為news

  ArticleCount:圖文消息個數(shù),限制為10條以內(nèi),這個必須準確,有多少條圖文消息就得填寫多少,不然會出錯。

  Articles:多條圖文消息信息,默認第一個item為大圖,每個item的結(jié)構(gòu)完全一樣,每個item表示一條圖文消息。

  Title:圖文消息標題

  Description:圖文消息描述

  PicUrl:圖片鏈接,支持JPG、PNG格式,較好的效果為大圖640*320,小圖80*80。

  Url:點擊圖文消息跳轉(zhuǎn)鏈接,這個鏈接可以是自己網(wǎng)站鏈接,但是記得申請白名單,不然出現(xiàn)警告提示用戶一般不會點擊進去。

  其他消息接口

  這些接口都未對外開放,看看就行,如果在寫教程中途官方開放了,我也會寫進。

  1、用戶信息接口(未開放)

  公眾平臺獲取關注用戶的信息。

  接口請求地址:

  https://api.weixin.qq.com/cgi-bin/user/info

  接口返回信息:

  subscribe:用戶是否訂閱該公眾號標識,值為0時,拉取不到其余信息

  openid:用戶的標識,對當前公眾號唯一

  nickname:用戶的昵稱

  sex:用戶的性別,值等于1時為男性,值等于2時為女性

  city:用戶所在城市

  language:用戶的語言,簡體中文為zh_CN

  2、媒體文件上傳接口(未開放)

  上傳圖片、語音、視頻等文件,獲取media_id,media_id可復用。

  接口請求地址:

  http://api.weixin.qq.com/cgi-bin/media/upload

  接口返回信息:

  type:媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb)

  media_id:媒體文件上傳后獲取的唯一標識

  created_at:媒體文件上傳時間

  3、媒體文件獲取接口(未開放)

  通過media_id獲取圖片、語音、視頻等文件。

  接口請求地址:

  http://api.weixin.qq.com/cgi-bin/media/get

  4、拉取關注接口(未開放)

  拉取公眾賬戶關注用戶列表。

  接口請求地址:

  https://api.weixin.qq.com/cgi-bin/user/get

  接口返回信息:

  total:關注該公眾賬號的總用戶數(shù)

  count:拉取的OPENID個數(shù),最大值為10000

  data:列表數(shù)據(jù),OPENID的列表

  next_openid:下一次拉取的關注用戶的偏移值

TAGS:
推薦閱讀