API 連携
Chat&Messenger API を使う事で、外部システム、プログラムと簡単に連携する事ができます。
API 連携により、次のような処理が可能になります。
- 社内システムと連携し、業務データをチャットルームに通知
- システムエラーを検知し関係者に通知
- 社内グループウェアからWeb会議連携
- スケジュールや会議室の予約情報を取得し、他システムと連携
API 連携はクラウド / オンプレミス 共に Enterprise 以上のプランが必要です。
API Token と API インターフェイス
管理画面から API Token の取得
API 連携を行う場合、最初に API Token を取得してください。
API Token は、パスワードと同じで取り扱いにご注意ください。
取得した apiToken / serverURL を、以下「API インターフェイス」の通り JavaScript / curl に引き渡してください。
API インターフェイス
API インターフェイスとして、JavaScript / curl コマンドラインが利用できます。以下のサンプルは共に、会議室の登録情報をJSON形式で取得する事ができます。
JavaScript
let config = {
"apiToken": "QIQVOSvRJHrQElDwj20x******",
"serverURL": "https://*****************"
}
let client = new CAMAPIClient(config);
let response = await client.getConferenceRooms();
curl コマンドライン
curl -H "x-cam-apiToken:token******" ${serverURL}/getConferenceRooms
※ オンプレミス環境のserverURLはHTTP 8080 ポートになります。
任意のHTTPアクセスプログラム
任意のHTTPアクセスプログラムでも連携可能です。
API サンプル画面
API 実行を簡単に試せるサンプルURLがあります。テストでご利用の場合、お問い合わせからご連絡お願いします。
API
※ 利用用途の高いものから段階的に拡充予定です
sendMessage
メッセージを送信します。
サンプル
- メッセンジャーでユーザIDを指定して送信
let response = await getAPIClient().sendMessage(
"messenger", // messenger を指定したダイレクトメッセージを指定
"Hello!", // 送信するメッセージ
false, // 封書は off
["user1@xxx.com", "user2@xxx.com"] // 宛先 Email アドレス
);
curl -H "x-cam-apiToken:token******" -d message="{\"panelName\":\"messenger\",\"message\":\"Hello\",\"isOpened\":false,\"generalPurposes\":{\"users\":\"user1@xxx.com,user2@xxx.com\"}}" ${serverURL}/sendMessage
- チャットルームを指定して送信
let response = await getAPIClient().sendMessage(
"ルーム名",
"Hello!",
false,
["user1@xxx.com", "user2@xxx.com"] // メンションとして Email アドレス指定
);
curl -H "x-cam-apiToken:token******" -d message="{\"panelName\":\"ルーム名\",\"message\":\"Hello\",\"isOpened\":false,\"generalPurposes\":{\"users\":\"user1@xxx.com,user2@xxx.com\"}}" ${serverURL}/sendMessage
引数
send |
- 送信対象を指定する
- メッセンジャーの場合は、messenger を指定、チャットの場合は、ルーム名を指定する
|
users |
- send が messenger の場合は、宛先ユーザに。チャットルームの場合は、全体共有した上でメンションで通知される
- Email アドレスから該当ユーザを検索する
- 複数送信の場合、Email の区切り文字は , を指定
|
message |
- 送信メッセージを指定する
- テキストを改行させる場合は、改行コード \n を挿入します。
|
seal |
- true / false を指定。開封確認で送信する
|
sendMessages
json ファイルから一括でメッセージを送信します。
json ファイルは文字コードUTF8で保存してください。
サンプル
- curl コマンドライン
curl -H "x-cam-apiToken:token******" -d @messages.json ${serverURL}/sendMessages
- ダイレクトメッセージで送信する場合の messages.json ファイルサンプル
messages=[
{"message":"こんにちは 1","property":{"users":"user1@test.com,user2@test.com"}},
{"message":"こんにちは 2","property":{"users":"user1@test.com,user2@test.com"}},
{"message":"こんにちは 3","property":{"users":"user1@test.com,user2@test.com"}},
{"message":"こんにちは 4","property":{"users":"user1@test.com,user2@test.com"}},
]
- チャットルーム test に参加する全員に送信する場合の messages.json ファイルサンプル
messages=[
{"send": "test", "message":"テスト 1"}
]
createQuickCall
クイックWeb会議 URLを作成します。
サンプル
引数
expiredDate |
- クイック会議の期限(UnixTimeミリ)を指定する
|
password |
- クイック会議のパスワードを指定
- ブランクの場合は、パスワード無しの会議URLが作成される
|
updateChatRoom
チャットルムを作成・更新する
サンプル
let chatRoom = {
"id":"1564831284702237059",
"name":"秘密会議"
"createUserId":"11u1pu9d32p8vuvjoZdd",
"adminUserId":"11u1pu9d32p8vuvjoZdd",
"isMessageThread":true,
"isPublic":false,
"memberUids":{
"11u1pu9d32p8vuvjoZdd":true,
"1lmn7hoh3s1ja26fsazw":false,
"hhx10sfdv1jyou4la1ny":false,
"3400w9rfvs504c35dt99":false,
"309d32p8vuvjo5euuuwx":false
},
}
let response = await getAPIClient().updateChatRoom(chatRoom);
let errors = response['errors'];
if (errors) {
console.log(errors);
return;
}
console.log(response["chatRoom"]);
引数
chatRoom |
- チャットルムを作成・更新する JSON
- id は新規の場合は不要
|
getConferenceMaster
会議室のマスタ一覧を取得します。
サンプル
会議室のマスタ一覧を取得する
let response = await getAPIClient().getConferenceMaster();
let errors = response['errors'];
if (errors) {
console.log(errors);
return;
}
console.log(response["conferenceRooms"]);
引数
無し
getConferenceRoomStatus
会議室の予約状況一覧を取得する
サンプル
let response = await getAPIClient().getConferenceRoomStatus("201908");
let errors = response['errors'];
if (errors) {
console.log(errors);
return;
}
console.log(response["conferenceRoomStatus"]);
引数
yyyyMMdd |
- 引数の指定が無い場合は、会議室のマスタ一覧が取得される。
- 引数 yyyyMMdd に月、または日付をすると、該当会議室の予約状況が取得できます。例) 201908 or 20190801
- 予約状況は conferenceRooms.reservedSchedules に格納されています。
|