В этом руководстве описывается, как программно создавать собрания пользователей в своей учетной записи Zoom с помощью скрипта Google Apps и официального API Zoom.
В качестве первого шага перейдите на панель инструментов разработчика Zoom и создайте новое приложение. Выберите JWT
в качестве типа приложения и запишите ключ и секрет API Zoom. Мы также можем создавать приложения Zoom с библиотекой OAuth2, но поскольку это приложение предназначено только для внутреннего использования и не будет публиковаться на торговой площадке Zoom, подход JWT проще.
Приложение будет включать в себя два шага. Мы подключаемся к API /api.zoom.us/v2/users/
Далее мы сделаем запрос пост-запроса на конечную точку /v2/users/<
Создать маркер доступа к масштабированию
const ZOOM_API_KEY = '
const ZOOM_API_SECRET = '
const ZOOM_EMAIL = '
const getZoomAccessToken = () => {
const encode = (text) => Utilities.base64Encode(text).replace(/=+$/, '');
const header = { alg: 'HS256', typ: 'JWT' };
const encodedHeader = encode(JSON.stringify(header));
const payload = {
iss: ZOOM_API_KEY,
exp: Date.now() + 3600,
};
const encodedPayload = encode(JSON.stringify(payload));
const toSign = `${encodedHeader}.${encodedPayload}`;
const signature = encode(
Utilities.computeHmacSha256Signature(toSign, ZOOM_API_SECRET)
);
return `${toSign}.${signature}`;
};
Получить внутренний идентификатор пользователя текущего пользователя
const getZoomUserId = () => {
const request = UrlFetchApp.fetch('https://api.zoom.us/v2/users/', {
method: 'GET',
contentType: 'application/json',
headers: { Authorization: `Bearer ${getZoomAccessToken()}` },
});
const { users } = JSON.parse(request.getContentText());
const [{ id } = {}] = users.filter(({ email }) => email === ZOOM_EMAIL);
return id;
};
Запланировать встречу Zoom
Вы можете создать мгновенную встречу или расписание встречи с фиксированной продолжительностью. Время начала встречи указывается в формате yyyy-MM-ddThh:mm:ss
с указанным часовым поясом.
Полный список вариантов встречи доступен здесь, а часовые пояса — здесь.
const createZoomMeeting = () => {
const meetingOptions = {
topic: 'Zoom Meeting created with Google Script',
type: 1,
start_time: '2020-07-30T10:45:00',
duration: 30,
timezone: 'America/New_York',
password: 'labnol',
agenda: 'Discuss the product launch',
settings: {
auto_recording: 'none',
mute_upon_entry: true,
},
};
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),
}
);
const { join_url, id } = JSON.parse(request.getContentText());
Logger.log(`Zoom meeting ${id} created`, join_url);
};
Приложение может быть улучшено для автоматического добавления новых участников на встречу после того, как они зарегистрируют свой адрес электронной почты, скажем, Google Forms. В этом случае пост запрос сделан до /meetings/{meetingId}/registrants