Недавно мы получили несколько вопросов от клиентов о возможности программного управления собраниями своей команды. В ходе этого процесса мы выявили несколько болевых точек и придумали несколько решений, которые помогут вам упростить задачу. В этой статье я хотел бы осветить эту тему и разделю ее на несколько частей:

  1. Как получить доступ к чужому ресурсу встреч?
  2. Как позволить другим управлять вашими встречами?
  3. Как программно управлять собраниями других людей?

Как получить доступ к чужому ресурсу встреч?

Можно ли сделать это? Мы знаем, что для доступа к своему собственному ресурсу запланированных встреч вы просто вызываете API:

HTTP GET /restapi/v1.0/account/{accountId}/extension/{your own extensionId}/meeting

Чтобы получить доступ к чужому ресурсу встреч, вы можете спросить, можно ли просто сделать это:

HTTP GET /restapi/v1.0/account/{accountId}/extension/{other's extensionId}/meeting

Ответ: НЕТ. Вам не разрешен доступ к чужим ресурсам встреч, даже если вы являетесь суперадминистратором. Это сделано специально, дизайн может измениться в будущем на основе отзывов пользователей. Но пока, если вы попытаетесь получить доступ к ресурсам других встреч, как указано выше, вы получите следующее сообщение об ошибке:

"In order to call this API endpoint, user needs to have [Meetings] permission"

Сообщение об ошибке вводит в заблуждение. Основная причина не в том, что у вас нет разрешения на «[Встречи]», а в том, что у вас нет разрешения на доступ к собраниям других людей. Существует внутренний билет RingCentral для отслеживания этого вводящего в заблуждение сообщения об ошибке, и мы скоро его исправим.

Есть ли у вас официально поддерживаемый способ управления собраниями других людей и наоборот? Ответ: ДА, продолжайте читать.

Как позволить другим управлять вашими встречами?

Пользователи, которые хотят, чтобы их собраниями управляли другие, могли войти в сеть RingCentral Service Web (https://service.devtest.ringcentral.com для песочницы и https://service.ringcentral.com для производства). Перейдите в Настройки, Сведения о пользователе, Настройки и разрешения, найдите раздел Назначить встречи для меня:

Нажмите кнопку «Изменить», и вы сможете указать, кто может планировать встречи для вас:

Если кто-то позволяет вам планировать собрания от его имени, вы можете сделать это, выполнив следующие действия: войдите в сеть RingCentral Service, перейдите в Инструменты, Мои собрания, нажмите кнопку «Запланировать новое собрание»:

На странице расписания встречи внизу есть раскрывающийся список «Запланировать на»:

После того, как встреча будет запланирована, оба пользователя смогут ее увидеть. Если встреча запланирована для других, имя организатора будет показано в списке:

Более того, оба пользователя могут редактировать или удалять встречу. Таким образом, встречей могут управлять они оба.

Как программно управлять собраниями других людей?

Можем ли мы сделать вышеперечисленное программно? Ответ: ДА. И это особенно полезно, когда вы хотите создать приложение для управления всеми собраниями в вашей организации. Давайте подумаем, как назначить себе встречу через API:

HTTP POST /restapi/v1.0/account/{accountId}/extension/{my extensionId}/meeting

Вам может быть интересно, можно ли запланировать встречу для других, вы можете просто сделать это:

HTTP POST /restapi/v1.0/account/{accountId}/extension/{other's extensionId}/meeting

Ответ - НЕТ, хотя подход кажется вполне разумным. Потому что по замыслу вам нужно указать организатора встречи в теле HTTP-запроса:

"method": "post",
"baseURL": "https://platform.ringcentral.com",
"url": "/restapi/v1.0/account/~/extension/~/meeting",
"data": "{\"topic\":\"test meeting\",\"meetingType\":\"Scheduled\",\"schedule\":{\"startTime\":\"2020-05-02T22:21:24.551Z\",\"durationInMinutes\":30,\"timeZone\":{\"id\":\"58\"}},\"host\":{\"id\":\"590490017\"}}",
"headers": {
    ...
}

После создания собрания и создатель собрания, и организатор собрания смогут увидеть это собрание в своем списке собраний, и оба они смогут получить собрание по идентификатору. Обратите внимание, что при работе с API собраний вы всегда должны указывать свой собственный идентификатор расширения в URI конечной точки API:

HTTP GET /restapi/v1.0/account/{accountId}/extension/{your extensionId}/meeting/{meetingId}

Даже если встреча запланирована с другим человеком в качестве организатора, вы все равно указываете свой собственный идентификатор расширения при вызове API, в настоящее время это сделано специально. Следующее просто НЕ работает:

HTTP GET /restapi/v1.0/account/{accountId}/extension/{host's extensionId}/meeting/{meetingId}

И создатель встречи, и организатор встречи могут редактировать встречу через API:

HTTP PUT /restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting/{meetingId}

И им обоим разрешено удалить встречу:

HTTP DELETE /restapi/v1.0/account/{accountId}/extension/{extensionId}/meeting/{meetingId}

После подтверждения вышеизложенного теоретически можно настроить одно расширение для управления собраниями всех расширений в вашей организации.

Резюме

На этом статья завершается, в ней я рассказал об управлении собраниями, особенно о том, как управлять собраниями других людей. Я также рассмотрел детали от конфигурации до кодирования, которые должны были предоставить вам достаточно информации для создания вашей собственной стратегии управления встречами.

Чтобы узнать больше о других функциях, обязательно посетите наш сайт для разработчиков, а если у вас возникнут какие-либо проблемы, обязательно посетите наш форум разработчиков.

Хотите быть в курсе и узнавать о новых API и функциях? Присоединяйтесь к нашей программе Game Changer и получайте отличные награды за развитие своих навыков и изучение RingCentral больше!