API Linkage
By using Chat&Messenger API, you can easily link with external systems and programs.
The API linkage enables the following processing.
- Linkage with internal systems and notification of business data to chat rooms
- Detects system errors and notifies relevant personnel
- Web conference linkage from internal groupware
- Obtain schedule and meeting room reservation information and link to other systems
API Token and API Interface
Obtaining an API Token from the administration screen
When performing API linkage, first obtain an API Token.
Pass the obtained apiToken / serverURL to JavaScript / curl as described in "API Interface" below.

API Interface
The API interface can be used with JavaScript, curl command line, or any HTTP access program. Both of the following samples can retrieve conference room registration information in JSON format.
In an environment where regular SSL is not applied, the server URL will be HTTP port 8080.
JavaScript
let config = {
"apiToken": "QIQVOSvRJHrQElDwj20x******",
"serverURL": "https://*****************"
}
let client = new CAMAPIClient(config);
let response = await client.getConferenceRooms();
curl command line
curl -H "x-cam-apiToken:token******" ${serverURL}/getConferenceRooms
Any HTTP access program
Any HTTP access program can be used. API execution is Content-Type
indicates object of desire, like, hate, etc. application/x-www-form-urlencoded
Then send it via POST.
API Sample Screens
We have a sample URL where you can easily test API execution. If you would like to use it for testing, please contact us through Contact Us.

Message API
sendMessage
Send a message.
sample
Send by messenger with user 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
Send by specifying a chat room
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
argument (e.g. function, program, programme)
send |
|
users |
|
message |
|
seal |
|
sendMessages
Sends a batch message from a json file.
json files should be saved with the character code UTF8.
sample
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
Quick Web Conference Create a URL.
createQuickCall
sample
let response = await getAPIClient().createQuickCall(
1624368868714, // クイック会議の期限(UnixTimeミリ)
"password!", // クイック会議のパスワードを指定
);
argument (e.g. function, program, programme)
expiredDate | Specify the deadline (UnixTime milli) for the quick meeting |
title | Set the title to be displayed on the meeting screen * If blank, it will not be displayed. |
password | Specify password for quick meeting * If left blank, a meeting URL without a password will be created. |
response
sid | Web conference ID |
url | Web conference URL |
PresenterPass | If you create a view-only meeting, the presenter must enter a password. |
Automatic login
To automatically log in to the conference URL generated by createQuickCall, access it by concatenating the userName and password in the URL parameters as follows:
https://app.chat-messenger.com/share/{Web conference ID}?userName=Taro&password=000
getCallStats
Returns the current status of the web conference, including the number of participants.
sample
let response = await getAPIClient().getCallStats(
8sQYFO2sPYHb7xSsibpVCKaqrFmTpCureVqKvwKgSZJs, // Web会議のID
);
argument (e.g. function, program, programme)
roomName | Specify the web conference ID, or SID for quick conferences |
response
roomName | Web conference ID |
title | Web conference subject |
creationDate | Creation date |
expiredDate | date of expiry |
participants | Current number of participants |
inProgress | true if the meeting is in progress, false otherwise |
User API
The User API only provides the curl command, and requires administrator privileges to run it.
exportUsers
User information will be downloaded in CSV format to the location specified by path.
sample
curl -H "x-cam-apiToken:token******" -d "path=exportUsers.csv" ${serverURL}/exportUsers
updateUsersCSV
Update user information in bulk from a CSV file. * See CSV format
sample
curl -H "x-cam-apiToken:token******" -F "file=@updateUsers.csv" ${serverURL}/updateUsersCSV
ChatRoom API
updateChatRoom
Create and update chatrums
sample
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"]);
argument (e.g. function, program, programme)
chatRoom |
|
Schedule API
getConferenceMaster
Retrieves the master list of meeting rooms.
sample
let response = await getAPIClient().getConferenceMaster();
let errors = response['errors'];
if (errors) {
console.log(errors);
return;
}
console.log(response["conferenceRooms"]);
argument (e.g. function, program, programme)
without
getConferenceRoomStatus
Retrieve a list of meeting room reservations
sample
let response = await getAPIClient().getConferenceRoomStatus("201908");
let errors = response['errors'];
if (errors) {
console.log(errors);
return;
}
console.log(response["conferenceRoomStatus"]);
argument (e.g. function, program, programme)
yyyyMMdd |
|
API error detection
Please judge API errors as follows:
HTTP status code other than 200
Any HTTP status other than 200 is an error without exception.
HTTP status is 200, but there is an error on the server
If the API token is invalid or the target data does not exist, the HTTP status itself will be returned as 200, and the error can be determined by the status in the response being 520. Additionally, errors will contain an array of the code and message of the error cause.
{"status":520, "errors":[{"code":"805","message":"APIトークンが正しくありません"}]}
The meaning of the code and the details of the message returned at the same time are as follows:
code | meaning | message |
---|---|---|
400 | Bad client-side request | This request is invalid. |
405 | Non-existent group | – |
406 | I can't change the group | – |
451 | User is not registered | The user is not registered. Please register first. *If users can register themselves |
452 | User is not registered | The user is not registered. |
490 | The number of login attempts has been exceeded | You have reached the maximum number of password attempts and are unable to log in. Please wait a while and try again. |
491 | Too many requests | – |
500 | Unexpected server-related error | – |
503 | Service unavailable | – |
800 | This function is for administrators only and cannot be used. | This feature is available to administrators only. |
802 | This is an API-only function and cannot be used. | This operation is available via API only. |
805 | Invalid API token | The API token is invalid. |