ページのイメージ
WEB開発 2017/04/27

Slack APIで自動投稿BOT作成!

  •  
  • このエントリーをはてなブックマークに追加

こんにちは

 エンジニアの城所です。

 

 みなさんはコミュニケーションツールに何を使用していますか?

 

弊社では社内のコミュニケーションツールとしてslackを使用しています。

もちろん重要事項ではメールでの連絡も行いますが、簡単なコミュニケーションにはとても便利で、導入している企業さんも多いのではないかと思います。

 

このslackには様々なAPIが用意されているのですが、最近WebHookを使用して、特定の時間になるとあるチャンネルに自動で投稿するということをやったので今回はその紹介したいと思います。

 

普段phpで仕事をしているので、phpでの実装になります。

またslackのチームはすでに作成されていることを前提としています。

 

下記が手順になります!

 

1:APIを使用するための設定が必要なので、下記ページにアクセスし、Create New Appを押し適当なAPP名と自動メッセージを送りたいチームを選択します。

https://api.slack.com/apps

 

2:APPの作成が完了したら、今回使うIncoming Webhooksを選び、Activate Incoming WebhooksをONにします

 

 

 

3:上記画像の一番下にあるWebhook URLをプログラムで使用するのですが、この時点ではまだどのチャンネルにメッセージを送信するか指定していないため空になっています。

Add New Webhook to Teamからメッセージを投稿したいチャンネルを選択し、Authorizedを押下することでWebhook URLが作成されます。

 

4:WebHook URLが作成されると、上記画像のページが更新され、Webhook URLの中身がコピーできるようになります。

 

5:あとはこのURLを使用し、プログラムで実行するだけでメッセージの投稿が可能です。

phpだとこんな感じです。

https://hooks.slack.com/services/xxx/yyy/zzzのとこに上記でコピペしたURLを入れてください。

<?php
define('SLACK_WEBHOOK', 'https://hooks.slack.com/services/xxx/yyy/zzz');
$message = array('payload' => json_encode(array('text' => 'ここに書いたメッセージが投稿されます')));
$c = curl_init(SLACK_WEBHOOK);
curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, $message);
curl_exec($c);
curl_close($c);
?>

ブラウザ上で実行phpの実行できるpaiza等を使えば簡単に確認できます。

https://paiza.io/projects/new

 

今回は説明は省きますが、あとはこのプログラムをcronで時間を指定して実行すれば自動bot的なものができます!

 

今回WebHookを使ってみて、フォームで時間とメッセージを指定してその時間に自分宛にメッセージを送る簡易リマインダー的なものが作れると面白そうだなと思ったので、次のブログまでには紹介できるようにしておこうと思います!

 

 

 

 

 

 

 

 

Category

Ranking