概要
Qiita:Teamで投稿などを通知してくれる機能がないので、メール通知機能を作りました。
動作方法
- 適当なPHPが動くサーバに下記phpをホスティング
- Qiita:TeamのWebHookに以下のようなURLを設定
例)[host]/qiita.php?mailto=[mailaddress]
コード
qiita.php
if ($to = $_GET['mailto']) {
$payload = json_decode(file_get_contents('php://input'));
$action = "{$payload->model}_{$payload->action}";
if (is_callable($action)) {
list($subject, $body) = $action($payload);
mb_send_mail($to, $subject, $body);
}
}
function item_created($payload) {
$item = $payload->item;
$user = $payload->user;
$body = <<<BODY
{$user->url_name}さんが「{$item->title}」を投稿しました
{$item->url}
BODY;
return array("Qiita:Teamに記事が投稿されました", $body);
}
function comment_created($payload) {
$item = $payload->item;
$comment = $payload->comment;
$user = $comment->user;
$body = <<<BODY
{$user->url_name}さんが「{$item->title}」にコメントしました
{$item->url}
{$comment->raw_body}
BODY;
return array("Qiita:Teamにコメントが投稿されました", $body);
}
対応機能
新規記事の投稿とコメントの投稿のみ対応しています。
その他機能は、上記コードとQiita Webhook documentを参考に、追加すれば動くかと思います。