MENU

API 연동으로 사내 업무 자동화

목차

API 연계

Chat&Messenger API를 사용하면 외부 시스템, 프로그램과 쉽게 연동할 수 있습니다.
API 연동을 통해 다음과 같은 처리가 가능합니다.

  • 사내 시스템과 협력하여 비즈니스 데이터를 대화방에 알립니다.
  • 시스템 오류를 감지하고 당사자에게 통지
  • 사내 그룹웨어에서 웹 회의 연계
  • 스케줄 및 회의실 예약 정보를 취득하여 다른 시스템과 연계
API 연동에는 클라우드 엔터프라이즈/온프레미스 Ultimate 이상의 계획이 필요합니다.

API Token 및 API 인터페이스

관리 화면에서 API Token 얻기

API 연동을 수행하려면 먼저 API Token을 받으십시오.

얻은 apiToken / serverURL을 아래 "API 인터페이스"와 같이 JavaScript / curl에 전달하십시오.

API Token은 비밀번호와 동일하므로 취급에 유의하십시오.

API 인터페이스

API インターフェイスとして、JavaScript / curl コマンドライン / 任意のHTTPアクセスプログラムが利用できます。以下のサンプルは共に、会議室の登録情報をJSON形式で取得する事ができます。

정규 SSL 적용이 아닌 환경에서는 serverURL이 HTTP 8080 포트가 됩니다.

자바스크립트

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

모든 HTTP 액세스 프로그램

모든 HTTP 액세스 프로그램에서도 연동 가능합니다.

API 샘플 화면

API 실행을 쉽게 시도할 수 있는 샘플 URL이 있습니다. 테스트로 이용하시는 경우, 문의로부터 연락 부탁드립니다.

Message 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를 지정하고 채팅의 경우 룸 이름을 지정합니다.
사용자
  • send가 messenger이면 대상 사용자에게. 대화방의 경우 전체 공유 후 멘션으로 통보됩니다.
  • 이메일 주소에서 해당 사용자 검색
  • 다중 전송의 경우 Email 구분 기호는
message
  • 보내는 메시지 지정
  • 텍스트를 개행시키는 경우는, 개행 코드 \n 를 삽입합니다.
seal
  • true / false 를 지정. 개봉 확인으로 보내기

sendMessages

json 파일에서 일괄 적으로 메시지를 보냅니다.

json 파일은 문자 코드 UTF8로 저장하십시오.

샘플

curl -H "x-cam-apiToken:token******" -d @messages.json ${serverURL}/sendMessages 
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"}},
]
messages=[
  {"send": "test", "message":"テスト 1"}
]

Call API

빠른 웹 회의 URL을 만듭니다.

createQuickCall

샘플

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

인수

expiredDate빠른 회의 마감일(UnixTime 밀리) 지정
title会議画面に表示されるタイトルを設定
※ ブランクの場合は、表示されない
password빠른 회의 비밀번호 지정
※ ブランクの場合は、パスワード無しの会議URLが作成される

レスポンス

sidWeb会議ID
urlWeb会議URL
presenterPass視聴のみモードの会議を生成した場合に、プレゼンターが必要になるパスワード

自動ログイン

createQuickCall で生成した会議URLに自動でログインするには、次のようにURLパラメータに userName、password を連結してアクセスしてください。

https://app.chat-messenger.com/share/{Web会議ID}?userName=太郎&password=000

getCallStats

Web会議の現在の参加者数などステータスを返却します。

샘플

let response = await getAPIClient().getCallStats(
	8sQYFO2sPYHb7xSsibpVCKaqrFmTpCureVqKvwKgSZJs, 	// Web会議のID
	);

인수

roomNameWeb会議のIDを指定、クイック会議の場合はSID

レスポンス

roomNameWeb会議ID
titleWeb会議件名
creationDate作成日時
expiredDate有効期限
participants現在の参加者数
inProgress会議が進行中の場合は true、そうでない場合は false

User API

User API는 curl 명령만 제공합니다. 또한 실행하려면 관리자 권한이 필요합니다.

exportUsers

path로 지정된 위치에 사용자 정보를 CSV 형식으로 다운로드합니다.

샘플

curl -H "x-cam-apiToken:token******" -d "path=exportUsers.csv" ${serverURL}/exportUsers

updateUsersCSV

CSV 파일에서 일괄 적으로 사용자 정보를 업데이트합니다. ※ 참조 CSV 형식

샘플

curl -H "x-cam-apiToken:token******" -F "file=@updateUsers.csv" ${serverURL}/updateUsersCSV

ChatRoom API

updateChatRoom

채팅룸 만들기 및 업데이트

샘플

let chatRoom = { 
   "id":"1564831284702237059",
   "name":"秘密会議"
   "createUserId":"11u1pu9d32p8vuvjoZdd",
   "adminUserId":"11u1pu9d32p8vuvjoZdd",
   "isPublic":false,
   "memberUids":{ 
      "11u1pu9d32p8vuvjoZdd":true,
      "1lmn7hoh3s1ja26fsazw":true,
      "hhx10sfdv1jyou4la1ny":true,
      "3400w9rfvs504c35dt99":true,
      "309d32p8vuvjo5euuuwx":true
   },
}
let response = await getAPIClient().updateChatRoom(chatRoom);
let errors = response['errors'];
if (errors) {
	console.log(errors);
	return;
}
console.log(response["chatRoom"]);

인수

chatRoom
  • 채팅룸 만들기 및 업데이트 JSON
  • id는 새로운 경우에는 필요하지 않습니다.

Schedule API

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에 저장됩니다.

API のエラー判定

API のエラー判定は、次の通り判定してください。

HTTPステータスが200以外

HTTPステータスが200以外の場合は、例外なくエラーです。

HTTPステータスが200だが、サーバでエラー

APIトークンが不正や、対象データが存在しない場合などは、HTTPステータスそのものは200で返却され、レスポンス中の status が 520 で判定可能です。また errors にはエラー原因の code と message が配列で格納されます。

{"status":520, "errors":[{"code":"805","message":"APIトークンが正しくありません"}]}

code の意味と、同時に返却される message の詳細は以下です。

code意味message
400クライアント側の不正なリクエストこのリクエストは無効です。
405存在しないグループ
406グループ変更ができない
451ユーザが登録されていないユーザが登録されていません。先にユーザ登録してください。
※ユーザが自身で登録できる場合
452ユーザが登録されていないユーザが登録されていません。
490ログイン施行回数を超過したパスワード試行回数の上限に達しためログインできません。しばらく時間をおいてから再度お試しください。
491リクエスト回数が多すぎる
500予期せぬサーバ起因のエラー
503サービスが利用できない
800管理者専用機能のため利用できないこの機能は管理者しか利用できません。
802API専用機能のため利用できないこの操作はAPIのみで利用可能です。
805APIトークン不正APIトークンが正しくありません。
  • URL을(를) 확인했습니다!
목차