微信公衆帳號高級接口使用小結

  2013年6月份開始,就陸陸續續的研究了一下微信公衆帳號的使用,整理了一篇《關於微信公衆平臺的調研說明》的文檔。文檔從微信公衆帳號的註冊、設置,到微信公衆帳號平臺管理的各個部分,都進行了介紹(微信升級以後,如今微信公衆帳號平臺的界面可能和文檔中有所不一樣,但基本上經過這個文檔,也知道怎麼去使用)。2013年11月份,對微信公衆帳號進行認證,另外獲得了9個開放的接口,現將9個接口應用過程進行小結一下,文檔中的內容大部分來自於官方資料,另外加上了一些我我的應用過程當中的一些理解,若有不正確的地方,歡迎你們指出。  javascript

1.語音識別
  用戶給您的微信公衆帳號發送語音消息,微信服務器會先對語音消息進行識別,而後將識別出的文本內容和語音發送給您的微信公衆帳號的後臺服務器。
  發送方不帶語音識別功能的XML以下所示:html

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<MsgId>1234567890123456</MsgId>
</xml>

  發送方帶語音識別功能的XML以下所示:java

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1357290913</CreateTime>
<MsgType><![CDATA[voice]]></MsgType>
<MediaId><![CDATA[media_id]]></MediaId>
<Format><![CDATA[Format]]></Format>
<Recognition><![CDATA[騰訊微信團隊]]></Recognition>
<MsgId>1234567890123456</MsgId>
</xml>

  從上面能夠看出,微信服務器在推送的語音消息XML數據包中,增長了一個Recongnition字段,該字段的內容是語音識別出的文本內容。
  【參數說明】:
  git

參數json

描述設計模式

ToUserNameapi

開發者微信號(也就是你的微信公衆號)數組

FromUserName瀏覽器

發送方賬號(一個OpenID,用戶的帳號)服務器

CreateTime

消息建立時間 (整型)

MsgType

語音爲voice

MediaID

語音消息媒體id,能夠調用多媒體文件下載接口拉取該媒體

Format

語音格式:amr

Recognition

語音識別結果,UTF8編碼

MsgID

消息id,64位整型

  【注】:語音識別功能能夠在個人服務頁面的高級接口欄目,經過開關來控制開啓和關閉。以下圖所示:

2.客服接口
  當用戶主動發消息給您的微信公衆號的時候(包括髮送信息、點擊自定義菜單、關注等),微信服務器將會把消息數據推送給開發者,開發者在一段時間內(目前爲24小時)能夠調用客服消息接口,經過POST一個JSON數據包來發送消息(現支持文本、圖片、圖文、語音、視頻、音樂)給普通用戶,在24小時內不限制發送次數。此接口主要用於客服等有人工消息處理環節的功能,方便開發者爲用戶提供更加優質的服務。
  與之相對應的是非認證帳號的「發送被動響應消息」接口,「發送被動響應消息」接口有一個缺陷就是:微信服務器在五秒內收不到響應會斷掉鏈接。也就是說,微信服務器只保持5秒的鏈接,若是五秒沒有回覆消息,那麼發起該會話請求的用戶就會收不到回覆了。
3.OAuth2.0網頁受權
  若是用戶在微信中(Web微信除外)訪問公衆號的第三方網頁,公衆號開發者能夠經過此接口獲取當前用戶基本信息(包括暱稱、性別、城市、國家)。利用用戶信息,能夠實現體驗優化、用戶來源統計、賬號綁定、用戶身份鑑權等功能。【注意】:「獲取用戶基本信息接口(後續介紹)是在用戶和公衆號產生消息交互時,才能根據用戶OpenID獲取用戶基本信息,而網頁受權的方式獲取用戶基本信息,則無需消息交互,只是用戶進入到公衆號的網頁,就可彈出請求用戶受權的界面,用戶受權後,就可得到其基本信息(此過程甚至不須要用戶已經關注公衆號。)」
  【注意】:在微信公衆號請求用戶網頁受權以前,開發者須要先到公衆平臺網站的個人服務頁中配置受權回調域名。請注意,這裏填寫的域名不要加http://,以下所示(這裏填寫的是演示地址):

  具體而言,網頁受權流程分爲四步:
  第一步:用戶贊成受權,獲取code。參考連接形式:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx909310a8acfdc259&redirect_uri=http%3A%2F%2Fwww.baidu.com&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect (注意:appid應該輸入您的微信公衆帳號的appid,該連接不能夠在瀏覽器中打開。實際使用的時候,須要把redirect_uri修改成您要跳轉的地址,目前我寫的是http://www.baidu.com,修改的時候,一樣要修改上面圖片所示設置的受權回調頁面域名)。在微信中打開這個受權連接,會進入到以下圖所示頁面:

  單擊取消或容許按鈕,都會進入到上面設置的回調頁面。若是用戶贊成受權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE。若用戶禁止受權,則重定向後不會帶上code參數,僅會帶上state參數redirect_uri?state=STATE
  【code說明 】:
  code做爲換取access_token的票據,每次用戶受權帶上的code將不同,code只能使用一次,5分鐘未被使用自動過時。
  【參數說明】:

參數

是否必須

說明

appid

公衆號的惟一標識

redirect_uri

受權後重定向的回調連接地址

response_type

返回類型,請填寫code

scope

應用受權做用域,snsapi_base (不彈出受權頁面,直接跳轉,只能獲取用戶openid),snsapi_userinfo (彈出受權頁面,可經過openid拿到暱稱、性別、所在地。而且,即便在未關注的狀況下,只要用戶受權,也能獲取其信息)

state

重定向後會帶上state參數,開發者能夠填寫任意參數值

#wechat_redirect

直接在微信打開連接,能夠不填此參數。作頁面302重定向時候,必須帶此參數


  第二步:經過code換取網頁受權access_token。獲取code後,請求如下連接獲取access_token: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
  【注意】:這裏經過code換取的網頁受權access_token,與基礎支持中的access_token不一樣。若是網頁受權的做用域爲snsapi_base,則本步驟中獲取到網頁受權access_token的同時,也獲取到了openid,snsapi_base式的網頁受權流程即到此爲止。
  【參數說明】:

參數

是否必須

說明

appid

公衆號的惟一標識

secret

公衆號的appsecret

code

填寫第一步獲取的code參數

grant_type

填寫爲authorization_code


  【返回說明】:
  正確時返回的JSON數據包以下:

 

{
   "access_token":"ACCESS_TOKEN",
   "expires_in":7200,
   "refresh_token":"REFRESH_TOKEN",
   "openid":"OPENID",
   "scope":"SCOPE"
}

 

  【參數說明】:

參數

描述

access_token

網頁受權接口調用憑證,注意:此access_token與基礎支持的access_token不一樣

expires_in

access_token接口調用憑證超時時間,單位(秒)

refresh_token

用戶刷新access_token

openid

用戶惟一標識,請注意,在未關注公衆號時,用戶訪問公衆號的網頁,也會產生一個用戶和公衆號惟一的OpenID

scope

用戶受權的做用域,使用逗號(,)分隔


  錯誤時微信會返回JSON數據包以下(示例爲Code無效錯誤):

{"errcode":40029,"errmsg":"invalid code"}

  第三步:刷新access_token(若是須要)。因爲access_token擁有較短的有效期,當access_token超時後,可使用refresh_token進行刷新,refresh_token擁有較長的有效期(7天、30天、60天、90天),當refresh_token失效的後,須要用戶從新受權。
  獲取第二步的refresh_token後,請求如下連接獲取access_token:
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN
  【參數說明】:

參數

是否必須

說明

appid

公衆號的惟一標識

grant_type

填寫爲refresh_token

refresh_token

填寫經過access_token獲取到的refresh_token參數


  【返回說明】:
  正確時返回的JSON數據包以下:

{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}

  【參數說明】:

參數

描述

access_token

網頁受權接口調用憑證,注意:此access_token與基礎支持的access_token不一樣

expires_in

access_token接口調用憑證超時時間,單位(秒)

refresh_token

用戶刷新access_token

openid

用戶惟一標識

scope

用戶受權的做用域,使用逗號(,)分隔


  錯誤時微信會返回JSON數據包以下(示例爲Code無效錯誤):

{"errcode":40029,"errmsg":"invalid code"}

  第四步:拉取用戶信息(需scope爲 snsapi_userinfo)。若是網頁受權做用域爲snsapi_userinfo,則此時開發者能夠經過access_token和openid拉取用戶信息了。
  【請求方法】:
  http:GET(請使用https協議)
  https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
  【參數說明】:

參數

描述

access_token

網頁受權接口調用憑證,注意:此access_token與基礎支持的access_token不一樣

openid

用戶的惟一標識


  【返回說明】:
  正確時返回的JSON數據包以下:

{
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", 
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
]
}

  【參數說明】:

參數

描述

openid

用戶的惟一標識

nickname

用戶暱稱

sex

用戶的性別,值爲1時是男性,值爲2時是女性,值爲0時是未知

province

用戶我的資料填寫的省份

city

普通用戶我的資料填寫的城市

country

國家,如中國爲CN

headimgurl

用戶頭像,最後一個數值表明正方形頭像大小(有0、4六、6四、9六、132數值可選,0表明640*640正方形頭像),用戶沒有頭像時該項爲空

privilege

用戶特權信息,json 數組,如微信沃卡用戶爲(chinaunicom)


  錯誤時微信會返回JSON數據包以下(示例爲openid無效):

{"errcode":40003,"errmsg":" invalid openid "}

4. 生成帶參數二維碼
  使用該接口能夠得到多個帶不一樣場景值的二維碼,用戶掃描後,公衆號能夠接收到事件推送(說的簡單點,意思就是能夠經過這個接口,產生一個二維碼,而後用戶能夠經過掃描這個二維碼,進入到公衆帳號信息頁面(未關注公衆帳號的用戶)或公衆帳號的會話頁面(關注了公衆帳號的用戶))。
  目前有2種類型的二維碼,分別是臨時二維碼和永久二維碼,前者有過時時間,最大爲1800秒,但可以生成較多數量,後者無過時時間,數量較少(目前參數只支持1--1000)。兩種二維碼分別適用於賬號綁定、用戶來源統計等場景。
  用戶掃描帶場景值二維碼時,可能推送如下兩種事件:

  • 若是用戶還未關注公衆號,則用戶能夠關注公衆號,關注後微信會將帶場景值關注事件推送給開發者。
  • 若是用戶已經關注公衆號,在用戶掃描後會自動進入會話,微信也會將帶場景值掃描事件推送給開發者。

  獲取帶參數的二維碼的過程包括兩步,首先建立二維碼ticket,而後憑藉ticket到指定URL換取二維碼。
  第一步:建立二維碼ticket。
  【請求說明】:

  http請求方式: POST
  URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKEN
  POST數據格式:json
  POST數據例子:{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}

  【參數說明】:

參數

說明

expire_seconds

該二維碼有效時間,以秒爲單位。 最大不超過1800。

action_name

二維碼類型,QR_SCENE爲臨時,QR_LIMIT_SCENE爲永久

action_info

二維碼詳細信息

scene_id

場景值ID,臨時二維碼時爲32位整型,永久二維碼時最大值爲1000


  【返回說明】:
  正確的Json返回結果:

{"ticket":"gQG28DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0FuWC1DNmZuVEhvMVp4NDNMRnNRAAIEesLvUQMECAcAAA==","expire_seconds":1800}

  【參數說明】:

參數

說明

ticket

獲取的二維碼ticket,憑藉此ticket能夠在有效時間內換取二維碼。

expire_seconds

二維碼的有效時間,以秒爲單位。最大不超過1800。


  錯誤的Json返回示例:

{"errcode":40013,"errmsg":"invalid appid"}

  第二步:經過ticket換取二維碼。

  【請求說明】:
  HTTP GET請求(請使用https協議)
  https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=TICKET

  【返回說明】:
  ticket正確狀況下,http 返回碼是200,是一張圖片,能夠直接展現或者下載。以下圖所示:

  錯誤狀況下(如ticket非法)返回HTTP錯誤碼404。
5. 獲取用戶地理位置
  【注意】:要使用獲取用戶地理位置功能,首先要在個人服務----高級接口中,開啓獲取用戶地理位置按鈕,單擊按鈕,會彈出以下所示頁面:

  能夠根據須要自行選擇獲取地理位置的模式。
  開通了上報地理位置接口的公衆號,用戶在關注後進入公衆號會話時,會彈框讓用戶確認是否容許公衆號使用其地理位置(以下圖左所示)。彈框只在關注後出現一次,用戶之後能夠在公衆號詳情頁面進行操做(以下圖右所示)。
                                                            
  用戶贊成上報地理位置後,每次進入公衆號會話時,都會在進入時上報地理位置,或在進入會話後每5秒上報一次地理位置,上報地理位置以推送XML數據包到開發者填寫的URL來實現。
  推送XML數據包示例:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[LOCATION]]></Event>
<Latitude>23.137466</Latitude>
<Longitude>113.352425</Longitude>
<Precision>119.385040</Precision>
</xml>

  【參數說明】:

參數

描述

ToUserName

開發者微信號

FromUserName

發送方賬號(一個OpenID)

CreateTime

消息建立時間 (整型)

MsgType

消息類型,event

Event

事件類型,LOCATION

Latitude

地理位置緯度

Longitude

地理位置經度

Precision

地理位置精度


6. 獲取用戶基本信息
  在關注者與公衆號產生消息交互後,公衆號可得到關注者的OpenID(加密後的微信號,每一個用戶對每一個公衆號的OpenID是惟一的。對於不一樣公衆號,同一用戶的openid不一樣)。公衆號可經過本接口來根據OpenID獲取用戶基本信息,包括暱稱、頭像、性別、所在城市、語言和關注時間。
  【接口調用請求說明】:

http請求方式: GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID

  【參數說明】:

參數

是否必須

說明

access_token

調用接口憑證

openid

普通用戶的標識,對當前公衆號惟一


  【返回說明】:
  正常狀況下,微信會返回下述JSON數據包給公衆號:

{
"subscribe": 1, 
"openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
"nickname": "Band", 
"sex": 1, 
"language": "zh_CN", 
"city": "廣州", 
"province": "廣東", 
"country": "中國", 
"headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0", 
"subscribe_time": 1382694957
}

  【參數說明】:

參數

說明

subscribe

用戶是否訂閱該公衆號標識,值爲0時,表明此用戶沒有關注該公衆號,拉取不到其他信息。

openid

用戶的標識,對當前公衆號惟一

nickname

用戶的暱稱

sex

用戶的性別,值爲1時是男性,值爲2時是女性,值爲0時是未知

city

用戶所在城市

country

用戶所在國家

province

用戶所在省份

language

用戶的語言,簡體中文爲zh_CN

headimgurl

用戶頭像,最後一個數值表明正方形頭像大小(有0、4六、6四、9六、132數值可選,0表明640*640正方形頭像),用戶沒有頭像時該項爲空

subscribe_time

用戶關注時間,爲時間戳。若是用戶曾屢次關注,則取最後關注時間


  錯誤時微信會返回錯誤碼等信息,JSON數據包示例以下(該示例爲AppID無效錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

7. 獲取關注者列表
  公衆號可經過本接口來獲取賬號的關注者列表,關注者列表由一串OpenID(加密後的微信號,每一個用戶對每一個公衆號的OpenID是惟一的)組成。一次拉取調用最多拉取10000個關注者的OpenID,能夠經過屢次拉取的方式來知足需求。
  【接口調用請求說明】:

http請求方式: GET(請使用https協議)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

  【參數說明】:

參數

是否必須

說明

access_token

調用接口憑證

next_openid

第一個拉取的OPENID,不填默認從頭開始拉取


  【返回說明】:
  正確時返回JSON數據包:

{"total":2,"count":2,"data":{"openid":["","OPENID1","OPENID2"]},"next_openid":"NEXT_OPENID"}

  【參數說明】:

參數

說明

total

關注該公衆帳號的總用戶數

count

拉取的OPENID個數,最大值爲10000

data

列表數據,OPENID的列表

next_openid

拉取列表的後一個用戶的OPENID


  錯誤時返回JSON數據包(示例爲無效AppID錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

  【附】:當公衆號關注者數量超過10000時,可經過填寫next_openid的值,從而屢次拉取列表的方式來知足需求。
具體而言,就是在調用接口時,將上一次調用獲得的返回中的next_openid值,做爲下一次調用中的next_openid值。
8. 用戶分組接口
  開發者可使用接口,對公衆平臺的分組進行查詢、建立、修改操做,也可使用接口在須要時移動用戶到某個分組。
8.1查詢分組
  【接口調用請求說明】:

http請求方式: GET(請使用https協議)
https://api.weixin.qq.com/cgi-bin/groups/get?access_token=ACCESS_TOKEN

  【參數說明】:

參數

說明

access_token

調用接口憑證


  【返回說明】:
  正常時的返回JSON數據包示例:

{
"groups": [
{
"id": 0, 
"name": "未分組", 
"count": 72596
}, 
{
"id": 1, 
"name": "黑名單", 
"count": 36
}
]
}

  【參數說明】:

參數

說明

groups

公衆平臺分組信息列表

id

分組id,由微信分配

name

分組名字,UTF8編碼

count

分組內用戶數量


8.2建立分組
  一個公衆帳號,最多支持建立500個分組。
  【 接口調用請求說明】:

http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/groups/create?access_token=ACCESS_TOKEN
POST數據格式:json
POST數據例子:{"group":{"name":"test"}}

  【參數說明】:

參數

說明

access_token

調用接口憑證

name

分組名字(30個字符之內)


  【返回說明】:
  正常時的返回JSON數據包示例:

{
"group": {
"id": 107, 
"name": "test"
}
}

  【參數說明】:

參數

說明

id

分組id,由微信分配

name

分組名字,UTF8編碼


  錯誤時的JSON數據包示例(該示例爲AppID無效錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

8.3修改分組名
  【接口調用請求說明】:

http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
POST數據格式:json
POST數據例子:{"group":{"id":108,"name":"test2_modify2"}}

  【參數說明】:

參數

說明

access_token

調用接口憑證

id

分組id,由微信分配

name

分組名字(30個字符之內)


  【返回說明】:
  正常時的返回JSON數據包示例:

{"errcode": 0, "errmsg": "ok"}

  錯誤時的JSON數據包示例(該示例爲AppID無效錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

8.4移動用戶分組
  【接口調用請求說明】:

http請求方式: POST(請使用https協議)
https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token=ACCESS_TOKEN
POST數據格式:json
POST數據例子:{"openid":"oDF3iYx0ro3_7jD4HFRDfrjdCM58","to_groupid":108}

  【參數說明】:

參數

說明

access_token

調用接口憑證

openid

用戶惟一標識符

to_groupid

分組id


  【返回說明 】:
  正常時的返回JSON數據包示例:

{"errcode": 0, "errmsg": "ok"}

  錯誤時的JSON數據包示例(該示例爲AppID無效錯誤):

{"errcode":40013,"errmsg":"invalid appid"}

9. 上傳下載多媒體文件
  公衆號在使用接口時,對多媒體文件、多媒體消息的獲取和調用等操做,是經過media_id來進行的。經過本接口,公衆號能夠上傳或下載多媒體文件。
  【注意】:每一個多媒體文件(media_id)會在上傳、用戶發送到微信服務器3天后自動刪除,以節省服務器資源。
9.1上傳多媒體文件
  公衆號可調用本接口來上傳圖片、語音、視頻等文件到微信服務器,上傳後服務器會返回對應的media_id,公衆號此後可根據該media_id來獲取多媒體。請注意,media_id是可複用的,調用該接口需http協議。
  【接口調用請求說明】:

http請求方式: POST/FORM
http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
調用示例(使用curl命令,用FORM表單方式上傳一個多媒體文件):
curl -F media=@test.jpg "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"

  【參數說明】:

參數

是否必須

說明

access_token

調用接口憑證

type

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

media

form-data中媒體文件標識,有filenamefilelengthcontent-type等信息


  【返回說明】:
  正確狀況下的返回JSON數據包結果以下:

{"type":"TYPE","media_id":"MEDIA_ID","created_at":123456789}

  【參數說明】:

參數

描述

type

媒體文件類型,分別有圖片(image)、語音(voice)、視頻(video)和縮略圖(thumb,主要用於視頻與音樂格式的縮略圖)

media_id

媒體文件上傳後,獲取時的惟一標識

created_at

媒體文件上傳時間戳


  錯誤狀況下的返回JSON數據包示例以下(示例爲無效媒體類型錯誤):

{"errcode":40004,"errmsg":"invalid media type"}

  【注意事項】
  1).上傳的多媒體文件有格式和大小限制,以下:

  • 圖片(image): 128K,支持JPG格式
  • 語音(voice):256K,播放長度不超過60s,支持AMR格式
  • 視頻(video):1MB,支持MP4格式
  • 縮略圖(thumb):64KB,支持JPG格式

  2).媒體文件在後臺保存時間爲3天,即3天后media_id失效。
9.2下載多媒體文件
  公衆號可調用本接口來獲取多媒體文件。請注意,調用該接口需http協議。
  【接口調用請求說明】:

http請求方式: GET
http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID
請求示例(示例爲經過curl命令獲取多媒體文件)
curl -I -G "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID"

  【參數說明】:

參數

是否必須

說明

access_token

調用接口憑證

media_id

媒體文件ID


  【返回說明】:
  正確狀況下的返回HTTP頭以下:

HTTP/1.1 200 OK
Connection: close
Content-Type: image/jpeg 
Content-disposition: attachment; filename="MEDIA_ID.jpg"
Date: Sun, 06 Jan 2013 10:20:18 GMT
Cache-Control: no-cache, must-revalidate
Content-Length: 339721
curl -G "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID"

  錯誤狀況下的返回JSON數據包示例以下(示例爲無效媒體ID錯誤):

{"errcode":40007,"errmsg":"invalid media_id"}

 

  

  《IOS設計模式淺析》

相關文章
相關標籤/搜索