MENU

Automate internal operations through API linkage

TOC

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 integration requires a Cloud Enterprise/On-Premises Ultimate or higher plan.

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 Token is the same as a password, so please handle it with care.

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
  • Specify the target for transmission
  • For messenger, specify messenger; for chat, specify the room name.
users
  • If send is messenger, to the destination user. If it is a chat room, it is notified by Mention after sharing the whole chat room.
  • Search for a user by Email address
  • When sending multiple emails, specify , as the Email delimiter.
message
  • Specify the message to be sent
  • To break a line of text, insert the line feed code \n
seal
  • Specify true / false. Send with opening confirmation

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)

expiredDateSpecify the deadline (UnixTime milli) for the quick meeting
titleSet the title to be displayed on the meeting screen
* If blank, it will not be displayed.
passwordSpecify password for quick meeting
* If left blank, a meeting URL without a password will be created.

response

sidWeb conference ID
urlWeb conference URL
PresenterPassIf 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)

roomNameSpecify the web conference ID, or SID for quick conferences

response

roomNameWeb conference ID
titleWeb conference subject
creationDateCreation date
expiredDatedate of expiry
participantsCurrent number of participants
inProgresstrue 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
  • Create and update chat rooms JSON
  • id is not required for new users

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
  • If no argument is specified, a master list of meeting rooms is obtained.
  • If the argument yyyyMMMdd is a month or a date, you can get the reservation status of the corresponding conference room. e.g.) 201908 or 20190801
  • Reservation status is stored in conferenceRooms.reservedSchedules.

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:

codemeaningmessage
400Bad client-side requestThis request is invalid.
405Non-existent group
406I can't change the group
451User is not registeredThe user is not registered. Please register first.
*If users can register themselves
452User is not registeredThe user is not registered.
490The number of login attempts has been exceededYou have reached the maximum number of password attempts and are unable to log in. Please wait a while and try again.
491Too many requests
500Unexpected server-related error
503Service unavailable
800This function is for administrators only and cannot be used.This feature is available to administrators only.
802This is an API-only function and cannot be used.This operation is available via API only.
805Invalid API tokenThe API token is invalid.
TOC