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