- Модуль: socialservices
- Путь к файлу: ~/bitrix/modules/socialservices/classes/general/zoom.php
- Класс: CSocServZoom
- Вызов: CSocServZoom::createConference
public function createConference($params)
{
$result = new Result();
$conferenceData = null;
if (!$this->getEntityOAuth()->GetAccessToken())
{
return $result->addError(new Error('Could not get oauth token'));
}
if (isset($params['ENTITY_TYPE_ID']))
{
$entityTypeId = $params['ENTITY_TYPE_ID'];
unset($params['ENTITY_TYPE_ID']);
}
if (isset($params['ENTITY_ID']))
{
$entityId = $params['ENTITY_ID'];
unset($params['ENTITY_ID']);
}
$requestConferenceResult = $this->getEntityOAuth()->requestConference($params);
if(!$requestConferenceResult->isSuccess())
{
return $result->addErrors($requestConferenceResult->getErrors());
}
$conferenceData = $requestConferenceResult->getData();
$userData = $this->getEntityOAuth()->getCurrentUser();
if(!is_array($userData))
{
return $result->addError(new Error('Cannot get user data'));
}
$conferenceData['externalUserId'] = $userData['id'];
$conferenceData['externalAccountId'] = $userData['account_id'];
$conference['join_url'] = $this->attachPasswordToUrl($conferenceData['join_url'], $conferenceData['encrypted_password']);
$startTimeStamp = DateTime::createFromFormat(DATE_ATOM, $conferenceData['start_time'])->getTimestamp();
$startDateTime = DateTime::createFromTimestamp($startTimeStamp);
$params = [
'ENTITY_TYPE_ID' => ($entityTypeId ?? self::EMPTY_TYPE),
'ENTITY_ID' => ($entityId ?? 0),
'CONFERENCE_EXTERNAL_ID' => $conferenceData['id'],
'CONFERENCE_URL' => $conferenceData['join_url'],
'CONFERENCE_PASSWORD' => $conferenceData['encrypted_password'],
'CONFERENCE_CREATED' => (new DateTime()),
'CONFERENCE_STARTED' => $startDateTime,
'DURATION' => $conferenceData['duration'],
'TITLE' => $conferenceData['topic'],
'SHORT_LINK' => $this->getShortLink($conferenceData['id']),
];
$addResult = ZoomMeetingTable::add($params);
if (!$addResult->isSuccess())
{
return $result->addErrors($addResult->getErrors());
}
$conferenceData['bitrix_internal_id'] = $addResult->getId();
return $result->setData($conferenceData);
}