ビジネスチャット、Web会議、ファイル共有、スケジュール管理を統合したグループウェア。IP Messenger 互換。

API 連携で社内業務を自動化

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を作成します。

サンプル

  • クイック会議URLを作成します。
    let response = await getAPIClient().createQuickCall(
    	1624368868714, 	// クイック会議の期限(UnixTimeミリ)
    	"password!",  	// クイック会議のパスワードを指定
    	);
    

引数

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 は新規の場合は不要

getUsers

セキュリティの都合、お問い合わせ頂いてから情報提供いたします。

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 に格納されています。