Pgyer document center
Webhook 就是用戶(hù)通過(guò)自定義回調(diào)的方式來(lái)改變 Web 應(yīng)用的一種行為,這些回調(diào)可以由不是該 Web 應(yīng)用官方的第三方用戶(hù)或者開(kāi)發(fā)人員來(lái)維護(hù)、修改。通過(guò) Webhook,開(kāi)發(fā)者可以自定義一些行為通知到指定的 URL 去。
在蒲公英中,使用 Webhook 功能,開(kāi)發(fā)者可以將蒲公英上的部分事件消息,同步到另一個(gè)平臺(tái)(或網(wǎng)站)上去。例如:開(kāi)發(fā)者在蒲公英平臺(tái)中,上傳了一個(gè)應(yīng)用版本、或者收到一條用戶(hù)反饋時(shí),蒲公英都會(huì)將這個(gè)消息推送到開(kāi)發(fā)者制定的一個(gè)指定 URL 上去。
目前,蒲公英支持如下 6 種事件類(lèi)型:應(yīng)用更新、版本變動(dòng)、應(yīng)用反饋、App 設(shè)置變動(dòng)、遷移應(yīng)用、刪除應(yīng)用。
這樣,蒲公英就會(huì)在上述相關(guān)事件發(fā)生時(shí),將消息推送到剛剛設(shè)置的 URL 上。
蒲公英支持對(duì)同一個(gè)應(yīng)用設(shè)置多個(gè) Webhook,開(kāi)發(fā)者可以重復(fù)上述過(guò)程,再次創(chuàng)建即可。但是同一個(gè)應(yīng)用最多只能添加3個(gè) Webhook。
蒲公英針對(duì)第三方的 Webhook 服務(wù),當(dāng)蒲公英發(fā)送事件時(shí),使用 HTTP POST 請(qǐng)求,Content-Type 為 application/json,數(shù)據(jù)格式為 JSON。 例如,有應(yīng)用的新版本上傳時(shí),蒲公英發(fā)送的數(shù)據(jù)格式類(lèi)似如下形式(實(shí)際情況下會(huì)有稍許不同):
{
"action": "應(yīng)用更新",
"title": "OooPlay",
"link": "http://www.niangbk.cn/oooplay_test",
"message": "您的應(yīng)用OooPlay有了新的版本(2.4)更新。",
"type": "updateVersion",
"os_version": "2.4",
"build_version": "139",
"created": "2015-10-09 11:25:16",
"updated": "2015-10-09 11:25:16",
"timestamp": 1444361118,
"appsize": "2238036",
"device_type": 'iOS',
"notes": "修復(fù)了一些小弱智的小bug"
}
當(dāng)應(yīng)用收到 反饋 信息時(shí),蒲公英會(huì)發(fā)送如下類(lèi)似格式的數(shù)據(jù)(實(shí)際情況下會(huì)有稍許不同):
{
"action": "應(yīng)用反饋",
"title": "OooPlay",
"link": "http://www.niangbk.cn/oooplay_test",
"message": "您的應(yīng)用OooPlay收到一條新的反饋信息",
"type": "feedback",
"os_version": "2.4",
"build_version": "139",
"created": "2015-10-09 11:25:16",
"updated": "2015-10-09 11:25:16",
"timestamp": 1444361118,
"appsize": "2238036",
"device_type": 'iOS',
"notes": "修復(fù)了一些小弱智的小bug"
}
當(dāng)應(yīng)用收到 Crash Log 信息時(shí),蒲公英會(huì)發(fā)送如下類(lèi)似格式的數(shù)據(jù)(實(shí)際情況下會(huì)有稍許不同):
{
"action": "Crash log",
"title": "OooPlay",
"link": "http://www.niangbk.cn/oooplay_test",
"message": "您的應(yīng)用OooPlay收到了新的Crash Log",
"type": "crashlog",
"os_version": "2.4",
"build_version": "139",
"created": "2015-10-09 11:25:16",
"updated": "2015-10-09 11:25:16",
"timestamp": 1444361118,
"appsize": "2238036",
"device_type": 'iOS',
"notes": "libsystem_kernel.dylib 0x3094c49c mach_msg_trap 20 CoreFoundation 0x21edf7f3 <redacted> 146 CoreFoundation 0x21edddb9 <redacted> 1016 ..."
}
第三方 Webhook 服務(wù)可以使用獲取 POST RAW 數(shù)據(jù)的方式來(lái)獲取消息數(shù)據(jù)。例如,在 PHP 中可以用如下方式獲取數(shù)據(jù):
$data = file_get_contents('php://input');
// or
$data = $HTTP_RAW_POST_DATA;
獲取到數(shù)據(jù)之后,再進(jìn)行 json decode 即可解析出具體的數(shù)據(jù),例如:
$info = json_decode($data, true);
之后,第三方 Webhook 服務(wù)即可將獲取到的消息數(shù)據(jù),根據(jù)自身的業(yè)務(wù)邏輯進(jìn)行相應(yīng)處理,例如可以顯示在自己平臺(tái)的消息流、或通知中心等。
請(qǐng)打開(kāi)企業(yè)微信,找到需要接受消息的群組: