【GAS×ZOOM API】 미팅을 만드는 방법
18362 단어 GoogleAppsScriptzoomgas
오늘은 GoogleAppsScript(GAS)에서 ZOOM 미팅을 만드는 방법에 대해 자세히 쓰고 싶습니다!
기사를 쓰는데 있어서, 이 근처의 기사를 많이 참고로 했습니다. 매번 매번, 앞서의 분들에게는 감사입니다.
How to Create Zoom Meetings with Google Script ← 영어이지만 가장 알기 쉽게 친절!
Zoom API에서 미팅 만들기 사용 ← 위의 기사만으로는 왠지 작성할 수 없고, 미팅을 만들 때의 파라미터는 이쪽으로부터 빌렸습니다!
이 기사는 다음 기사의 지식을 기반으로합니다.
【GAS×ZOOM API】초학자에게도 상냥하게 JWT 인증의 방법을 해설해 본다
JWT 인증에 대해 아직 이해하지 못했다면 먼저 위의 기사를 읽으십시오.
미팅을 만드는 방법
ZOOMAPI의 공식 참조 를 살펴보면 미팅을 만드는 메소드를 쉽게 찾을 수 있습니다.
POST로 만들 수 있을 것 같네요.
한 가지 주의하는 것은
userID
를 취득해야 하는 것입니다.userID 얻기
userID를 얻는 코드는 다음과 같이 작성할 수 있습니다.
function getZoomUserId() {
const request = UrlFetchApp.fetch('https://api.zoom.us/v2/users/', {
method: 'GET',
contentType: 'application/json',
headers: { Authorization: `Bearer ${getZoomAccessToken()}` }, // 前回の記事で書いたJWT Token
});
const users = JSON.parse(request.getContentText());
return users.users[0].id;
}
UrlFetchApp.fetch
는 지정한 URL의 정보를 contentType
로 지정한 데이터 형식으로 가져오는 GAS에 등록된 메서드입니다. 이번에는 JSON 형식으로 취득합니다.취득하는 정보는 이런 느낌. ( 공식 문서 부터)
{
"page_count": 1,
"page_number": 1,
"page_size": 30,
"total_records": 1,
"users": [
{
"id": "z8yAAAAA8bbbQ",
"first_name": "Melina",
"last_name": "Ghimire",
"email": "[email protected]",
"type": 2,
"pmi": 581111112,
"timezone": "America/Los_Angeles",
"verified": 1,
"dept": "",
"created_at": "2018-11-15T01:10:08Z",
"last_login_time": "2019-09-13T21:08:52Z",
"last_client_version": "4.4.55383.0716(android)",
"pic_url": "https://lh4.googleusercontent.com/-someurl/photo.jpg",
"im_group_ids": [
"Abdsjkfhdhfj"
],
"status": "active"
}
]
}
와우, ,, 뭔가 신도,,,, 라는 느낌이군요 (웃음)
원하는 것은 ID이므로,
return users.users[0].id;
이렇게 쓰면 원하는 사용자 ID를 얻을 수 있습니다!
덧붙여서, 복수의 유저가 등록되어 있었을 경우, 상기의 방법으로는 유저 ID를 취득할 수 없습니다 (뭐 그렇게 어렵지 않을 것 같습니다만,,,).
다만, ZOOM으로 복수 유저 등록이라고 하는 것이 조금 잘 모르기 때문에, 신경쓰지 않고 갑시다. 일단 이것으로 사용자 ID를 얻을 수있었습니다.
미팅 만들기
그러면 드디어 미팅을 작성해 갑니다. 코드는 이런 느낌.
function createZoomMeeting() {
const meetingOptions = {
"topic":"GASでZOOMミーティング作成",
"type": "2", // ミーティングのタイプを入力、1, 2, 3, 8のいずれかを選択
"start_time": "2021-03-03T10:00:00Z", //開始時刻を入力
"duration": "10", // ミーティングの時間を設定
"timezone": "Asia/Tokyo", // タイムゾーンは日本にしましょう
"password": "", // パスワードを設定したい場合はこちら
"agenda": "",
// 以下細かい設定が続きますので適度に読み飛ばしてください
"settings": {
"host_video": "false",
"participant_video": "false",
"cn_meeting": "false",
"in_meeting": "false",
"join_before_host": "false",
"mute_upon_entry": "false",
"watermark": "false",
"use_pmi": "false",
"approval_type": "0",
"registration_type": "1",
"audio": "both",
"auto_recording": "local",
"enforce_login": "false",
"enforce_login_domains": "",
"alternative_hosts": "",
"global_dial_in_countries": [
""
],
"registrants_email_notification": "false"
}
};
const request = UrlFetchApp.fetch(
`https://api.zoom.us/v2/users/${getZoomUserId()}/meetings`,
{
method: 'POST',
contentType: 'application/json',
headers: { Authorization: `Bearer ${getZoomAccessToken()}` },
payload: JSON.stringify(meetingOptions),
}
);
}
Type의 분류는 이하
1. Instant Meeting
2. Scheduled Meeting
3. Recurring Meeting with no fixed Time
8. Recurring Meeting with no fixed Time(왜 "8?")
Recurring은 『반복』이라는 뜻이군요. ZOOM으로 설정할 수 있는 정례의 MTG는 녀석입니다.
meetingOptions
의 파라미터가 많은 것만으로, 나머지는 심플. 중요한 것은 여기 부분입니다. const request = UrlFetchApp.fetch(
`https://api.zoom.us/v2/users/${getZoomUserId()}/meetings`,
{
method: 'POST',
contentType: 'application/json',
headers: { Authorization: `Bearer ${getZoomAccessToken()}` },
payload: JSON.stringify(meetingOptions),
}
);
방금 취득한
UserId
와 마지막 기사 에서 취득한 JWT Token
를 건네주면 MTG가 작성됩니다!생각보다 쉽게 할 수 있었어요!
이상, 참고가 되면 기쁩니다! ZOOM의 API 정보도 인터넷에 거의 떨어지지 않았어요~~~~.
앞으로도, 여러가지 트라이 해 봐 얻은 지견을 공유할 수 있으면 좋겠습니다!
Reference
이 문제에 관하여(【GAS×ZOOM API】 미팅을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/coticoticotty/items/a167b2c6db56dd42a7f7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)