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 실행은 Content-Typeapplication/x-www-form-urlencoded POST로 보내주세요.

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이 작성된다

응답

sid웹 회의 ID
url웹 회의 URL
presenterPass시청 전용 모드의 회의를 생성한 경우 발표자가 필요한 비밀번호

자동 로그인

createQuickCall에서 생성한 회의 URL에 자동으로 로그인하려면 다음과 같이 URL 매개 변수에 userName, password를 연결하여 액세스합니다.

https://app.chat-messenger.com/share/{웹 회의 ID}?userName=타로&password=000

getCallStats

웹 회의의 현재 참가자 수와 같은 상태를 반환합니다.

샘플

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

인수

roomName웹 회의 ID를 지정하고 빠른 회의의 경우 SID

응답

roomName웹 회의 ID
title웹 회의 제목
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을(를) 확인했습니다!
목차