
チャットワーク(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ドキュメントを参考にした。





