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\Controller;use \Firebase\JWT\JWT;use GuzzleHttp\Client;use Laminas\Db\Adapter\AdapterInterface;use Laminas\Cache\Storage\Adapter\AbstractAdapter;use Laminas\Mvc\Controller\AbstractActionController;use Laminas\Log\LoggerInterface;use Laminas\View\Model\JsonModel;class ZoomController extends AbstractActionController{/**** @var AdapterInterface*/private $adapter;/**** @var AbstractAdapter*/private $cache;/**** @var LoggerInterface*/private $logger;/**** @var array*/private $config;/**** @param AdapterInterface $adapter* @param AbstractAdapter $cache* @param LoggerInterface $logger* @param array $config*/public function __construct($adapter, $cache , $logger, $config){$this->adapter = $adapter;$this->cache = $cache;$this->logger = $logger;$this->config = $config;}public function indexAction(){$data = ['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED'];return new JsonModel($data);}public function addAction(){/*$currentUserPlugin = $this->plugin('currentUserPlugin');$currentUser = $currentUserPlugin->getUser();$request = $this->getRequest();// if($request->isPost()) {$base_url = $this->config['leaderslinked.zoom.base_url'];$token = $this->getAccessToken();$client = new Client(['base_uri' => $base_url,]);$response = $client->request('POST', '/v2/users/me/meetings', ['headers' => ['Authorization' => 'Bearer ' . $token],'json' => ['topic' => 'Let s Learn WordPress','agenda' => 'Description Let s Learn WordPress','type' => 2,'start_time' => '2023-01-30T20:30:00','duration' => '30', // 30 mins'password' => '123456','timezone' => 'America/Caracas','settings' => ['participant_video'=> 'true','auto_recording' => 'none',]],]);$data = json_decode($response->getBody()->getContents());echo '<pre>';print_r($data);echo '</pre>';exit;//echo "Join URL: ". $data->join_url;//echo "<br>";//echo "Meeting Password: ". $data->password;} else {$data = ['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED'];return new JsonModel($data);}*/$token = 'EAAJaDxnm8uIBAGYjnYpOvjzm1BXbBgTtqfwn4YbagqIBGxfpWVZBObWtcnvfTJB6hMfHLWZBgG7dQ2O2UYMqZALYSLIQZC8swoNsHNYe3AMBkOjkt7YZBuIfXe22yyTgUZCBzGlsjbs0f72nNDvMlGNQlkCYNi3ZCDdXH61z9nW9xxUcdAnhk6M';$token = 'EAAJaDxnm8uIBAF3XfBml8yh9PqHOfO0UcwYALZAmoZCSPx6IkNZCRaVQaSWJfQALBqaRZCMziTddfvKgiVs1jwftg2sMyZBGixRTSDcXfvOv3nO4gZA2pCyruxa5iA1ZB01C83o2ZAg1Lnb07jeGF2C4d1Tauu3ZB9sZCJTkY4jMPt1Gnx8tpm5MAd';$client = new Client(['base_uri' => 'https://graph.facebook.com/v15.0',]);//$to = '584244343638';//$to = '59898137899';$to = '584122788242';$response = $client->request('POST', '/111473331819706/messages', ['headers' => ['Authorization' => 'Bearer ' . $token],'json' => ['messaging_product' => 'whatsapp','recipient_type' => 'individual','to' => $to,'type' => 'text','text' => ['preview_url' => false,'body' => 'MESSAGE_CONTENT']/*'type' => 'template','template' => ['name' => 'hello_world','language' => ['code' => 'en_US']] */],]);echo '<pre>';print_r($response->getBody()->getContents());echo '</pre>';exit;}public function listingAction(){$request = $this->getRequest();//if($request->isGet()) {$next_page_token = $this->params()->fromRoute('next_page');$base_url = $this->config['leaderslinked.zoom.base_url'];$token = $this->getAccessToken();$client = new Client(['base_uri' => $base_url,]);$request = ['headers' => ['Authorization' => 'Bearer '. $token],'type' => 'scheduled'];if (!empty($next_page_token)) {$request['query'] = ['next_page_token' => $next_page_token];}$response = $client->request('GET', '/v2/users/me/meetings', $request);echo '<pre>';print_r(json_decode($response->getBody()->getContents()));echo '</pre>';exit;$data = json_decode($response->getBody());if ( !empty($data) ) {foreach ( $data->meetings as $d ) {$topic = $d->topic;$join_url = $d->join_url;echo "<h3>Topic: $topic</h3>";echo "Join URL: $join_url";}if ( !empty($data->next_page_token) ) {list_meetings($data->next_page_token);}}/*} else {$data = ['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED'];}return new JsonModel($data);*/}public function deleteAction(){$request = $this->getRequest();//if($request->isPost()) {$meeting_id = $this->params()->fromRoute('id');$base_url = $this->config['leaderslinked.zoom.base_url'];$token = $this->getAccessToken();$client = new Client(['base_uri' => $base_url,]);$response = $client->request('DELETE', '/v2/meetings/' . $meeting_id, ['headers' => ['Authorization' => 'Bearer ' . $token]]);echo 'StatusCode : ' . $response->getStatusCode();exit;/*if (204 == $response->getStatusCode()) {$data = ['success' => true,'data' => 'Meeting deleted.'];} else {$data = ['success' => false,'data' => $response->getBody()->getContents()];}} else {$data = ['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED'];}return new JsonModel($data);*/}public function participantsAction(){$request = $this->getRequest();// if($request->isGet()) {$meeting_id = $this->params()->fromRoute('id');$base_url = $this->config['leaderslinked.zoom.base_url'];$token = $this->getAccessToken();$client = new Client(['base_uri' => $base_url,]);$response = $client->request('GET', '/v2/past_meetings/' . $meeting_id , ['headers' => ['Authorization' => 'Bearer '. $token]]);print_r($response->getBody()->getContents());exit;/*$data = json_decode($response->getBody());if ( !empty($data) ) {foreach ( $data->participants as $p ) {$name = $p->name;$email = $p->user_email;echo "Name: $name";echo "Email: $email";}}} else {$data = ['success' => false,'data' => 'ERROR_METHOD_NOT_ALLOWED'];}return new JsonModel($data);*/}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');}}