Rev 4131 | Rev 6749 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
<?phpdeclare(strict_types=1);namespace LeadersLinked\Library;use \Firebase\JWT\JWT;use GuzzleHttp\Client;use Laminas\Db\Adapter\Adapter;use LeadersLinked\Model\ZoomMeeting;class Zoom{/**** @var Adapter*/private $adapter;/**** @var array*/private $config;/**** @param Adapter $adapter* @param array config*/public function __construct($adapter, $config){$this->adapter = $adapter;$this->config = $config;}public function add($topic, $agenda, $type, $start_time, $duration, $timezone, $password){$base_url = $this->config['leaderslinked.zoom.base_url'];$token = $this->getAccessToken();$client = new Client(['base_uri' => $base_url,]);if($type == ZoomMeeting::TYPE_SCHEDULED) {$json = ['topic' => $topic,'agenda' => $agenda,'type' => 2,'start_time' => $start_time,'duration' => $duration,'password' => $password,'timezone' => $timezone,'settings' => ['participant_video'=> 'true','auto_recording' => 'true',]];} else {$json = ['topic' => $topic,'agenda' => $agenda,'type' => 1,'duration' => $duration,'password' => $password,'timezone' => $timezone,'settings' => ['participant_video'=> 'true','auto_recording' => 'none',]];}$request = ['headers' => ['Authorization' => 'Bearer ' . $token],'json' => $json,];$response = $client->request('POST', '/v2/users/me/meetings', $request );$statusCode = $response->getStatusCode() ;error_log('$statusCode = ' . $statusCode);if($statusCode >= 200 && $statusCode <= 300) {$data = json_decode($response->getBody()->getContents());return ['success' => true,'data' => ['id' => $data->id,'uuid' => $data->uuid,'join_url' => $data->join_url,'password' => $data->password,]];} else {return ['success' => false,'data' => $response->getStatusCode()];}}private function getAccessToken() {$api_key = $this->config['leaderslinked.zoom.api_key'];$api_secret = $this->config['leaderslinked.zoom.api_secret'];$payload =['iss' => $api_key,'exp' => time() + 3600,];return JWT::encode($payload, $api_secret, 'HS256');}}