🐕

【PHP】Slackでチャンネルに投稿された内容をGithubのProjectsにカードとして登録する

1 min read

書いてはさよならする使い捨て系スクリプトシリーズ

  • 事前のSlack Botの設定はコチラ
  • Github APIをたたくときに必要なPersonal API TOKENはこちらで。

Slackの特定のチャンネルに何か投稿されたらその内容を
GitHubのProject(KANBAN)にカードを作成するやつです。

このままだとBot招待したチャンネルの内容を全量ぶん投げるのでまんま動かしちゃだめよ

// Slack BotのEvent(message)
$input = file_get_contents('php://input');
$json = json_decode($input,true);
$msg = $json['event']['text'];

// Github API に Personal Tokenでcurlする
$header = array();
$header[] = 'Content-Type: application/json';
$header[] = 'Accept: application/json';
$header[] = 'Accept: application/vnd.github.inertia-preview+json';
$header[] = "Authorization: token [YOUR TOKEN]";

$data = array(
  'note'=>$msg
);

$data_json = json_encode($data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_USERAGENT, 'GITHUB USER ID');
curl_setopt($curl, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($curl, CURLOPT_URL, 'https://api.github.com/projects/columns/[ここにcolumn_id]/cards');
$content = curl_exec($curl);
curl_close($curl);