本文檔介紹了推送服務(wù)器的Web接口的使用方法。
首先區(qū)分一下user channel和tag channel的概念:
user channel是以客戶端唯一的uid作為channel的名稱,客戶端連接上來(lái)自動(dòng)sub(sub表示加入channel) tag channel 是客戶端主動(dòng)通過(guò)sub命令加入的通道,比如客戶端sub “l(fā)ocation:beijing”,那么它就加入了”location:beijing”的通道,對(duì)”location:beijing”下發(fā)消息, 該客戶端就會(huì)收到消息, 可以把tag channel想象成標(biāo)簽推送
開發(fā)者需要對(duì)Web接口以POST方法傳遞數(shù)據(jù),Web接口將以JSON格式返回接口調(diào)用結(jié)果。
假如在服務(wù)器配置文件中配置了
[web] bind localhost:8080
那么可使用如下的Linux命令調(diào)用接口或編程調(diào)用:
curl –X POST –d POST_DATA http://localhost:8080/METHOD_NAME
其中
POST_DATA 為POST的數(shù)據(jù) METHOD_NAME 為需要調(diào)用的方法名
METHOD_NAME: pub POST_DATA:
"expired": "1403521931", "appid": "XXX", "channel": "xxx@qq.com", "channel": "xxx@gmail.com", "data": "hello world"
如使用SDK中預(yù)置的通知欄消息展現(xiàn)模板,則對(duì)于POST數(shù)據(jù)中 data 字段的格式要求,參照如下JSON串:
{ "type":"notification", //通知欄類型 "style":"1", //通知欄樣式編號(hào) "config":{ "icondata":"XXXXXXX", //icon文件的BASE64編碼 "vibrate":"1", //是否震動(dòng):1 震動(dòng),0 不震動(dòng) "sound":"1", //是否發(fā)出提示音:1有聲音,0沒(méi)聲音 "title":"XXXXXX", //通知欄標(biāo)題 "ticker":"XXXXXXX", //狀態(tài)欄滾動(dòng)信息 "body":"XXXXXXX", //消息內(nèi)容 "clickconfig":{ //定義了用戶點(diǎn)擊后的行為,請(qǐng)見如下的例子 "operation":"launchActivity", "package":"com.wbkit.icclient", "targetActivity":"com.wbkit.icclient.MainActivity" } } }
clickconfig的例子一:打開應(yīng)用(Activity)
{ “operation”:“l(fā)aunchActivity”, //操作類型:打開Activity “package” : “com.example.demo” //APK包名 “targetActivity”: “com.example.demo.MainActivity”//Activity }
clickconfig的例子二:下載APK并安裝
{ “operation”:“download”, //操作類型:下載APK) “appname”: “捕魚達(dá)人” //APP 名字 “dlurl”: “http://xxxxxx.apk” //APK的url //PS:下載后自動(dòng)彈出安裝 }
clickconfig的例子三:打開頁(yè)面
{ “operation”:“l(fā)oadWebpage”, //操作類型:打開頁(yè)面 //PS: url和page二選一,如果都填了優(yōu)先url “url”: “http://www.baidu.com”, //url “page”: “.....” //頁(yè)面內(nèi)容 }
需要使用如下的格式確定data內(nèi)容
{ “type”:“transparent”, //透?jìng)黝愋? “config”:“{ “content”:“XXXXXXX”,//透?jìng)飨?nèi)容 } ” }
返回格式
{ "status": "200", "pushedCount": 100, "offCount": 1, "elapsed": 0.52, "mid": "489c4464de66000" }
tagpub是專門針對(duì)tag channel下發(fā)的命令,也支持離線消息,但是離線消息會(huì)消耗多一些資源。如果只需要實(shí)時(shí)下發(fā),請(qǐng)把expired設(shè)置為0。 METHOD_NAME: tagpub POST_DATA:
"channel": "localtion:beijing", "channel": "location:guangzhou", "data": "hello world", "appid": "XXX", "expired": "1403521931"
返回格式:
{ "status": "200", "pushedCount": 100, "elapsed": 0.52, "mid": "489c4465de66000" }
各項(xiàng)意義同pub方法
此方法將向appid下的所有在線用戶或者全部用戶下發(fā),區(qū)別只下發(fā)在線用戶或全部用戶是通過(guò)expired來(lái)區(qū)分的,如果expired為0,那么就只對(duì)在線的用戶下發(fā),不保存離線消息。
METHOD_NAME: allpub POST_DATA:
"appid": "XXX", "data": "hello world", "expired": "1403521931"<code>
返回格式:
{ "status": "200", "pushedCount": 100, "elapsed": 0.52, "mid": "489c4466de66000" }
status說(shuō)明:
提供了一個(gè)接口可以把某一些用戶的uid加入到某一tag channel下,此操作是冪等的。 METHOD_NAME:sub-tag POST_DATA:
"appid": "XXX", "tag": "localtion:beijing", "uid": "xxx@qq.com", "uid": "xxxx@gmail.com"
參數(shù)說(shuō)明:
返回結(jié)果:
{ "status": "200" }
status說(shuō)明
METHOD_NAME: unsub-tag POST_DATA:
"appid": "XXX", "tag": "localtion:beijing", "uid": "xxx@qq.com", "uid": "xxxx@gmail.com",
參數(shù)說(shuō)明
返回格式:
{ "status": "200" }
status說(shuō)明
METHOD_NAME: message POST_DATA:
"mid": "489c4466de66000"
返回格式:
{ "status":"200" "489c4466de66000": { "content":"hello world!", "expire":"1404378620", "readCount":"0", "recvdCount":"0", "startTime":"1403407632", "totalCount":"2", "appid": "XXX" } }
返回說(shuō)明:
METHOD_NAME: userchannel POST_DATA:
"channel": "xxx@qq.com", "channel": "xxxx@gmail.com"
返回:
{ "status": "200", "xxx@qq.com": 1, //此uid在線 "xxxx@gmail.com": 0 //此uid不在線 }
METHOD_NAME: tagchannel POST_DATA:
"channel": "location:Beijing", "channel": "location:Guangzhou"
返回:
{ "status": "200", "location:Beijing": 456, //當(dāng)前在"location:Beijing"這個(gè)標(biāo)簽TAG下有456人,包括在線及不在線用戶 "location:Guangzhou": 23 //當(dāng)前在"location:Beijing"這個(gè)標(biāo)簽TAG下有23人,包括在線及不在線用戶 }
METHOD_NAME: app-size POST_DATA:
"online": 1, "appid": "xxx", "appid": "yyy"
返回格式:
{ "status": "200", "xxx": 1234, //appid為xxx的app目前在線(或總數(shù))用戶數(shù)為1234人 "yyy": 567 //appid為yyy的app目前在線(或總數(shù))用戶數(shù)為567人 }
其中返回的數(shù)字表示數(shù)量,具體含義依賴于調(diào)用時(shí)online方法的值。