今天尝试用零信的 API 实现对持续集成过程的通知功能,顺便整理一下这段时间对零信 API 的使用经验,随着更多接口的使用,这篇文字会继续更新
Github 的 webhook
这种使用方式最简单,直接在 Github 上开启一个 webhook,绑定在某个群组上,每次有人提交了代码,就会有一个自动通知
Incoming接口
Incoming 接口是零信官方提供的消息接口,可以推送出一条漂亮的消息,完整的 JSON 数据格式是:
{
"text": "文本",
"channel": "#频道名字 或 @用户名字",
"photoUrl": "图片 URL",
"attachments": [{
"title": "标题",
"description": "描述",
"url": "链接",
"color": "warning|info|primary|error|muted|success"
}],
"displayUser": {
"name": "应用名称",
"avatarUrl": "头像地址"
},
"buttons": [
{
"text": "button label",
"url": "http://domain.com/foo.html",
"action": "action_1",
"callbackUrl": "http://foo.dev/inline-button-handler"
}
]
}
PHP 的代码是:
$data = [
'text' => $text,
'displayUser' => [
'name' => '测试服务器',
'avatarUrl' => "http://oe9f7btce.bkt.clouddn.com/cat.jpg",
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://hooks.pubu.im/services/74q8q92gnxp4irl");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_exec($ch);
curl_close($ch);