31. 12月 2014 · Write a comment · Categories: PHP · Tags: ,

社内のチームチャットツールとしてSlackを導入しました。
Slackの詳細についてはググればいくらでも出てくるので、そちらにお任せします。

ただ、ググってもAPIを使用してSlackbotに発言をさせる具体的な方法が出てこなかったので、紹介したいと思います。
まあ、POSTするだけなんですけどね。


まずテストしてみようとHTMLフォームを作ってPOSTしてみましたが、動作しませんでした。
HTMLからPOSTしてテストしようとしている方はご注意ください。動きません。最初からコードを書いてください。

コードはPHPで書いています。

IntegrationsにSlackbotが追加されていることを確認します。
integrations

Slackbotを選択すると設定画面が表示されます。
ここのURLに対してPOSTで送信するだけです。

url


$client = new HTTP_Client();
$client->post(
    "https://YOUR_TEAM/services/hooks/slackbot?token=TOKEN&channel={$channel}", 
    $message, 
    true
);

第一引数にSlackbot設定画面のURLを指定します。
このとき、Slack上のどのチャンネルで発言させるかをchannelパラメータに「#」付きで指定します。例えばgeneralチャンネルで発言させたければ、
https://YOUR_TEAM/services/hooks/slackbot?token=TOKEN&channel=#general
とします。
もちろん、上記URLのYOUR_TEAMとTOKENの部分は自分のSlack設定に合わせて変更してください。

第二引数にはSlackbotに発言させる文章を指定します。
使い方はいろいろあるかと思いますが、SQLがエラーを出した時にそのSQLとエラーを取得してPOSTするとかですかね。

さすがに上記コードをそのまま使おうと思われる方はいないと思いますので、クラスを作成して使いやすくしてください。

簡易的ではありますが、必要なときに必要な情報をSlackに通知させるにはこれで十分かと思います。
ご自分のサービスで使いドコロを考えて適切に通知させれば、イロイロと捗りますので是非お試しあれ。

それでは。