🐕

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

2020/12/24に公開

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

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

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

// 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);

Discussion