チャットワーク(ChatWork) | ビジネスが加速するクラウド会議室
以前、PHPからチャットワークを介してメッセージを投稿してみたことがある。
PHPでチャットワークAPIを介してメッセージを投稿してみる
今回はチャットワークAPIを介してタスクを登録してみることにする。
先に前回の復習でメッセージの投稿周りのコードを確認しておく。
<?php //取得したAPIトークンを入れる $apiKey = "******************************"; // ヘッダ header("Content-type: text/html; charset=utf-8"); $params = array( "body" => "PHPからテスト投稿" ); // cURLでPOST $ch = curl_init(); // cURLのオプション設定 {roomId}の箇所には取得したルームIDを入れる curl_setopt($ch, CURLOPT_URL, "https://api.chatwork.com/v2/rooms/{roomId}/messages"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-ChatWorkToken: '. $apiKey)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 結果を文字列で返す curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // サーバー証明書の検証を行わない curl_setopt($ch, CURLOPT_POST, true); // HTTP POSTを実行 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&')); $rsp = curl_exec($ch); curl_close($ch); // 送信結果も見ておく $res = json_decode($rsp); var_dump($res);
簡単にコードを見ておくと、
https://api.chatwork.com/v2/というURL以下に何をしたいか?をGETで指定する。
メッセージを投稿するのであれば、v2以下にrooms/{roomId}/messagesと付与することで、
指定のルーム(roomId)に対してメッセージを投稿するという命令になる。
このURLにGETで送信する際、
パラメータのbodyに投稿したいメッセージのテキストを挿入して、
ヘッダにAPIキーを付与して送れば良かった。
これを踏まえた上で指定のルームに対してタスクを送信する方法は、
GETの宛先をhttps://api.chatwork.com/v2/rooms/{roomId}/tasksにして、
パラメータでbodyとto_idsの値をいれて送信すれば良いらしい。
to_idsというのはチャットワークのアカウントIDになるんだけれども、
このアカウントIDをどのように調べて良いか?というと、
どこのルームでも良いから適当に投稿してみて、
自身が投稿したメッセージで引用を押してみると、
[引用 aid=******** time=1531467204]試しに何かを投稿してみよう! 投稿した後に引用すればアカウントIDが分かる![/引用]
という文章がフォームに挿入される。
引用のカッコの中にあるaidがアカウントIDに当たるらしい。
アカウントIDもわかったので、指定のルームにタスクを追加するPHPのコードを書いてみると、
<?php //apiKeyに関してはこの記事の冒頭にあるリンク先の記事をご覧ください。 $apiKey = "******************************"; // ヘッダ header("Content-type: text/html; charset=utf-8"); $params = array( "body" => "タスク追加テスト", "to_ids" => {先程取得したaid} ); // cURLでPOST $ch = curl_init(); // cURLのオプション設定 curl_setopt($ch, CURLOPT_URL, "https://api.chatwork.com/v2/rooms/{roomId}/tasks"); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-ChatWorkToken: '. $apiKey)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 結果を文字列で返す curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // サーバー証明書の検証を行わない curl_setopt($ch, CURLOPT_POST, true); // HTTP POSTを実行 curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&')); $rsp = curl_exec($ch); curl_close($ch); // 送信結果も見ておく $res = json_decode($rsp); var_dump($res);
こんな感じになり、このコードを実行した後、チャットワークの該当するルームを開いてみると、
PHPのコードで記述した通りのタスクが追加されていた。
今回の記事はエンドポイント:/rooms - チャットワークAPIドキュメントを参考にした。