読者です 読者をやめる 読者になる 読者になる

女子WEBエンジニアのTechメモ

都内の某企業でWEBエンジニアやってます。入社後にWEBエンジニアに職種チェンジし、アジアのオフショア開発チームに駐在し今に至る。ちょっと便利だなと思ったことをメモしています。

【3分】チャットワークAPIを使ってメッセージを送信するPHPサンプル

API

以前リリースされた「チャットワークAPI」。チャットワークのユーザーであれば、API利用申請をするだけで無料でAPIを利用することができます。

作っているPHPサービスに●●があったとき、チャットワークのこのルームに通知してほしい・・・ということがあったので実装しました。

事前にチャットワークAPIの申請さえ行っておけば、コードコピペのみで終わるので、3分で実装できます。(利用申請を行ってから、APIを利用するためのtokenが発行されるまで1日〜くらい時間がかかります。)

チャットワークAPIの連携でできること

なにかのアクションをトリガーにして、チャットワークルームでメッセージを送信できます。例えば、サービスにお問い合わせがあったときに、その内容をチャットワークで通知する、など。

ユーザー情報を取得したり、チャットルームの退会・削除などもできるので、かなり自由度の高いこともできそうです。

今回は「チャットワークAPIを使って、チャットルームにメッセージを送信」するためのPHPコードを書きます。

WEBサービスとチャットワークを連携するメリット

一番のメリットは、「気づきやすい」ということだと思います。

わたしは普段仕事でチャットワークを使っているので、TO付きで通知があるとメール通知より早く反応することができます。
このあたりは組織体制や個人の利用頻度にもよるので、チームで導入する際はチャットワーク通知がベストなのか確認しておいたほうがよさそうです。

しかし、一般的なメールを飛ばしたりする方法と比べると、

  • チャットワークが落ちているときは使えない
  • チャットワークのサービスが終了したときに改修の手間がかかる
  • セキュリティ的な・・・

という問題があるので、セキュリティが重要・常に動作してくれてないと死ぬ、という重要どころでは使わないほうが良いと思います。

サンプル(PHP)

チャットワークAPIを使って、チャットルームにメッセージを送信する、PHPのサンプルコードです。

//メッセージを送信したいルームIDを指定(※1)
$rid   = 123123;
//利用申請で発行されたチャットワークAPIのtokenを指定(※2)
$token = "asdasd";
//送信したいメッセージを入力(※3)
$msg = <<<MSG
[To:111] 佐藤さん[To:222] 田中さん
ブログにコメントがつきました!
MSG;

header( "Content-type: text/html; charset=utf-8" );
$data = array(
  'body' => $msg
);

$opt = array(
  CURLOPT_URL => "https://api.chatwork.com/v1/rooms/{$rid}/messages",
  CURLOPT_HTTPHEADER => array( 'X-ChatWorkToken: ' . $token ),
  CURLOPT_RETURNTRANSFER => TRUE,
  CURLOPT_SSL_VERIFYPEER => FALSE,
  CURLOPT_POST => TRUE,
  CURLOPT_POSTFIELDS => http_build_query( $data, '', '&' )
);

$ch = curl_init();
curl_setopt_array( $ch, $opt );
$res = curl_exec( $ch );
curl_close( $ch );

//結果を出力したい場合
echo "<pre>";
echo json_decode($res);

※1、※2
チャットワークAPIの利用申請のやり方と、tokenの確認方法については過去記事をご覧ください。
www.wegirls.tech
(目次「ChatworkAPIのアクセストークンを入力する」参照)

※3
TOやREなど、チャットワークのメッセージで送信できる文法はそのまま利用できます。
例えば、ブログの新着コメントをチャットワークで通知、というようにしたいのであれば、
$msgの内容を[info][title]投稿者:{$name}さん[/title]{$comment}[/info]というように変数を埋め込んでも良いです。

PHP×WebサービスAPIコネクションズ

PHP×WebサービスAPIコネクションズ