チャットワークのAPIを使ってみる



最近仕事でチャットワークを使うようになりました。
ちょうどいい機会なのでチャットワークのAPIを使ってみることにしました。

API利用申請

現在はAPIがプレビュー版とのことで利用申請が必須なようです。
将来的に利用申請なしになるかは不明・・・

まずはチャットワークのAPIを使用するには現在API使用申請を行わなければいけません。
下記のリンクから使用申請が行えます。
チャットワークAPIリンク
中段にある【こちらのリンクよりAPIの利用申請をおこなってください。】のリンクをクリックしてください。

参考にAPIの利用申請を行うと私の場合は1日ほどで利用開始出来る旨がメールで届きました。
この辺りは営業日等に左右されるかと思います。

APIトークンの発行

API使用許可が降りたら、次はAPIを使用するためのAPIトークンを発行しなければなりません。

下記を参考にしてください。
APIトークンの発行
【動作設定->API発行タブ】がなかった場合は画面を一度更新し直せば出てくるかと思います。

APIを使う

APIの基本仕様は下記を参照してください。
チャットワークAPI仕様

各エンドポイント毎にアクセス方法やcurlを使用した方法、レスポンスが載っているので参考にしてください。
エンドポイント: /me

PHPサンプル

使用される際はAPIキーやルームIDはご自分のものを使用してください。
ルームIDはURLの「https://www.chatwork.com/#!rid99999999」rid以降の数字のことです。

localhostで使用する際にcURLのオプションCURLOPT_SSL_VERIFYPEER をfalseにしないと証明書がないとアクセス出来ないのでオプションに指定しています。
接続できるならオプションに指定しなくても大丈夫です。

GET

自分自身の情報を取得
<?php
header("Content-type: text/html; charset=utf-8");

$url = "https://api.chatwork.com/v1/me"; // API URL
$api_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // APIキー

// cURLオプション設定
$options = array(
	CURLOPT_URL => $url, // URL
	CURLOPT_HTTPHEADER => array('X-ChatWorkToken: '. $api_key), // APIキー
	CURLOPT_RETURNTRANSFER => true, // 文字列で返却
	CURLOPT_SSL_VERIFYPEER => false, // 証明書の検証をしない
);

$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response);

// 結果出力
echo "<pre>";
var_dump($result);

POST

チャットに新しいメッセージを追加
<?php
header("Content-type: text/html; charset=utf-8");

$room_id = 99999999; // ルームID
$url = "https://api.chatwork.com/v1/rooms/{$room_id}/messages"; // API URL
$api_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // APIキー

// 送信パラメーター
$params = array(
	'body' => 'PHP API Test' // メッセージ内容
);

// cURLオプション設定
$options = array(
	CURLOPT_URL => $url, // URL
	CURLOPT_HTTPHEADER => array('X-ChatWorkToken: '. $api_key), // APIキー
	CURLOPT_RETURNTRANSFER => true, // 文字列で返却
	CURLOPT_SSL_VERIFYPEER => false, // 証明書の検証をしない
	CURLOPT_POST => true, // POST設定
	CURLOPT_POSTFIELDS => http_build_query($params, '', '&'), // POST内容
);

$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response);

// 結果出力
echo "<pre>";
var_dump($result);

PUT

チャットの名前、アイコンをアップデート
<?php
header("Content-type: text/html; charset=utf-8");

$room_id = 99999999; // ルームID
$url = "https://api.chatwork.com/v1/rooms/{$room_id}"; // API URL
$api_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // APIキー

// 送信パラメーター
$option = array(
	'name' => 'PHP API Test Room', // 部屋名
	'description' => 'PHP API Test', // 概要
	'icon_preset' => 'check' // アイコン
);

// cURLオプション設定
$options = array(
	CURLOPT_URL => $url, // URL
	CURLOPT_HTTPHEADER => array('X-ChatWorkToken: '. $api_key), // APIキー
	CURLOPT_RETURNTRANSFER => true, // 文字列で返却
	CURLOPT_SSL_VERIFYPEER => false, // 証明書の検証をしない
	CURLOPT_CUSTOMREQUEST => 'PUT', // リクエスト
	CURLOPT_POSTFIELDS => http_build_query($option, '', '&'), // PUT内容
);

$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response);

// 結果出力
echo "<pre>";
var_dump($result);

DELETE

グループチャットを退席/削除する
<?php
header("Content-type: text/html; charset=utf-8");

$room_id = 99999999; // ルームID
$url = "https://api.chatwork.com/v1/rooms/{$room_id}"; // API URL
$api_key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // APIキー

// 送信パラメーター
$option = array('action_type' => 'leave');

// cURLオプション設定
$options = array(
	CURLOPT_URL => $url, // URL
	CURLOPT_HTTPHEADER => array('X-ChatWorkToken: '. $api_key), // APIキー
	CURLOPT_RETURNTRANSFER => true, // 文字列で返却
	CURLOPT_SSL_VERIFYPEER => false, // 証明書の検証をしない
	CURLOPT_CUSTOMREQUEST => 'DELETE', // リクエスト
	CURLOPT_POSTFIELDS => http_build_query($option, '', '&'), // DELETE内容
);

$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response);

// 結果出力
echo "<pre>";
var_dump($result);

一応全種類には対応しました。
このAPI使って他のツール等とも連携を行ってみようと考えています。


コメントを残す