{"id":4769,"date":"2020-11-11T10:43:23","date_gmt":"2020-11-11T10:43:23","guid":{"rendered":"https:\/\/infyblog.zluck.in\/?p=4769"},"modified":"2024-08-06T10:47:43","modified_gmt":"2024-08-06T10:47:43","slug":"how-to-integrate-zoom-meeting-apis-with-laravel","status":"publish","type":"post","link":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/","title":{"rendered":"How to integrate Zoom Meeting APIs with Laravel"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4769\" class=\"elementor elementor-4769\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2ec6bb0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2ec6bb0\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e9643dc\" data-id=\"e9643dc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\n\t\t<div class=\"elementor-element elementor-element-a9e8181 elementor-widget elementor-widget-text-editor\" data-id=\"a9e8181\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p><a href=\"https:\/\/marketplace.zoom.us\/\">Zoom Marketplace<\/a> is providing APIs to create zoom meetings directly using the web interface and calling its API. So first of all you need to create your zoom ap into zoom marketplace and need to generate the API Keys and credentials.<\/p><h2>Create a Zoom Application<\/h2><ol><li>Go to<a href=\"https:\/\/marketplace.zoom.us\/\"> Zoom marketplace<\/a> and do sign in<\/li><li>Click the Develop button on the header and select Build App menu.<\/li><li>Choose the JWT and create an application with the app name that you want.<\/li><li>Input required information and click Continue until your app will be activated.<\/li><\/ol><p>I hope you already have installed fresh<a href=\"https:\/\/github.com\/laravel\/framework\"> laravel<\/a>.Now you have to add the following packages to your <span style=\"color: #e83e8c;\">composer.json<\/span> to integrate the zoom API.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6fe8231 elementor-widget elementor-widget-code-highlight\" data-id=\"6fe8231\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>composer require firebase\/php-jwt\r\ncomposer require guzzlehttp\/guzzle<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d92b2f6 elementor-widget elementor-widget-text-editor\" data-id=\"d92b2f6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>And Now run <span style=\"color: #e83e8c;\">composer update<\/span><\/p><p>And don&#8217;t forget that we also need to modify .env files to set the zoom API credentials.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9f4e62f elementor-widget elementor-widget-code-highlight\" data-id=\"9f4e62f\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>ZOOM_API_URL=\"https:\/\/api.zoom.us\/v2\/\"\r\nZOOM_API_KEY=\"INPUT_YOUR_ZOOM_API_KEY\"\r\nZOOM_API_SECRET=\"INPUT_YOUR_ZOOM_API_SECRET\"<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-46c82f6 elementor-widget elementor-widget-text-editor\" data-id=\"46c82f6\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>can find the zoom credentials from your zoom app.<\/p><p>Now just copy the given <span style=\"color: #e83e8c;\">ZoomMeetingTrait<\/span> to your controller and call-related methods.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f0d8748 elementor-widget elementor-widget-code-highlight\" data-id=\"f0d8748\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>namespace App\\Traits;\r\n\r\nuse GuzzleHttp\\Client;\r\nuse Log;\r\n\r\n\/**\r\n * trait ZoomMeetingTrait\r\n *\/\r\ntrait ZoomMeetingTrait\r\n{\r\n    public $client;\r\n    public $jwt;\r\n    public $headers;\r\n\r\n    public function __construct()\r\n    {\r\n        $this->client = new Client();\r\n        $this->jwt = $this->generateZoomToken();\r\n        $this->headers = [\r\n            'Authorization' => 'Bearer '.$this->jwt,\r\n            'Content-Type'  => 'application\/json',\r\n            'Accept'        => 'application\/json',\r\n        ];\r\n    }\r\n    public function generateZoomToken()\r\n    {\r\n        $key = env('ZOOM_API_KEY', '');\r\n        $secret = env('ZOOM_API_SECRET', '');\r\n        $payload = [\r\n            'iss' => $key,\r\n            'exp' => strtotime('+1 minute'),\r\n        ];\r\n\r\n        return \\Firebase\\JWT\\JWT::encode($payload, $secret, 'HS256');\r\n    }\r\n\r\n    private function retrieveZoomUrl()\r\n    {\r\n        return env('ZOOM_API_URL', '');\r\n    }\r\n\r\n    public function toZoomTimeFormat(string $dateTime)\r\n    {\r\n        try {\r\n            $date = new \\DateTime($dateTime);\r\n\r\n            return $date->format('Y-m-d\\TH:i:s');\r\n        } catch (\\Exception $e) {\r\n            Log::error('ZoomJWT->toZoomTimeFormat : '.$e->getMessage());\r\n\r\n            return '';\r\n        }\r\n    }\r\n\r\n    public function create($data)\r\n    {\r\n        $path = 'users\/me\/meetings';\r\n        $url = $this->retrieveZoomUrl();\r\n\r\n        $body = [\r\n            'headers' => $this->headers,\r\n            'body'    => json_encode([\r\n                'topic'      => $data['topic'],\r\n                'type'       => self::MEETING_TYPE_SCHEDULE,\r\n                'start_time' => $this->toZoomTimeFormat($data['start_time']),\r\n                'duration'   => $data['duration'],\r\n                'agenda'     => (! empty($data['agenda'])) ? $data['agenda'] : null,\r\n                'timezone'     => 'Asia\/Kolkata',\r\n                'settings'   => [\r\n                    'host_video'        => ($data['host_video'] == \"1\") ? true : false,\r\n                    'participant_video' => ($data['participant_video'] == \"1\") ? true : false,\r\n                    'waiting_room'      => true,\r\n                ],\r\n            ]),\r\n        ];\r\n\r\n        $response =  $this->client->post($url.$path, $body);\r\n\r\n        return [\r\n            'success' => $response->getStatusCode() === 201,\r\n            'data'    => json_decode($response->getBody(), true),\r\n        ];\r\n    }\r\n\r\n    public function update($id, $data)\r\n    {\r\n        $path = 'meetings\/'.$id;\r\n        $url = $this->retrieveZoomUrl();\r\n\r\n        $body = [\r\n            'headers' => $this->headers,\r\n            'body'    => json_encode([\r\n                'topic'      => $data['topic'],\r\n                'type'       => self::MEETING_TYPE_SCHEDULE,\r\n                'start_time' => $this->toZoomTimeFormat($data['start_time']),\r\n                'duration'   => $data['duration'],\r\n                'agenda'     => (! empty($data['agenda'])) ? $data['agenda'] : null,\r\n                'timezone'     => 'Asia\/Kolkata',\r\n                'settings'   => [\r\n                    'host_video'        => ($data['host_video'] == \"1\") ? true : false,\r\n                    'participant_video' => ($data['participant_video'] == \"1\") ? true : false,\r\n                    'waiting_room'      => true,\r\n                ],\r\n            ]),\r\n        ];\r\n        $response =  $this->client->patch($url.$path, $body);\r\n\r\n        return [\r\n            'success' => $response->getStatusCode() === 204,\r\n            'data'    => json_decode($response->getBody(), true),\r\n        ];\r\n    }\r\n\r\n    public function get($id)\r\n    {\r\n        $path = 'meetings\/'.$id;\r\n        $url = $this->retrieveZoomUrl();\r\n        $this->jwt = $this->generateZoomToken();\r\n        $body = [\r\n            'headers' => $this->headers,\r\n            'body'    => json_encode([]),\r\n        ];\r\n\r\n        $response =  $this->client->get($url.$path, $body);\r\n\r\n        return [\r\n            'success' => $response->getStatusCode() === 204,\r\n            'data'    => json_decode($response->getBody(), true),\r\n        ];\r\n    }\r\n\r\n    \/**\r\n     * @param string $id\r\n     * \r\n     * @return bool[]\r\n     *\/\r\n    public function delete($id)\r\n    {\r\n        $path = 'meetings\/'.$id;\r\n        $url = $this->retrieveZoomUrl();\r\n        $body = [\r\n            'headers' => $this->headers,\r\n            'body'    => json_encode([]),\r\n        ];\r\n\r\n        $response =  $this->client->delete($url.$path, $body);\r\n\r\n        return [\r\n            'success' => $response->getStatusCode() === 204,\r\n        ];\r\n    }\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f44915 elementor-widget elementor-widget-text-editor\" data-id=\"8f44915\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>And add the following constants to your controller.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-88e6892 elementor-widget elementor-widget-code-highlight\" data-id=\"88e6892\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>const MEETING_TYPE_INSTANT = 1;\r\nconst MEETING_TYPE_SCHEDULE = 2;\r\nconst MEETING_TYPE_RECURRING = 3;\r\nconst MEETING_TYPE_FIXED_RECURRING_FIXED = 8;<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49a2da7 elementor-widget elementor-widget-text-editor\" data-id=\"49a2da7\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>So the final controller will look like,<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-674b1d0 elementor-widget elementor-widget-code-highlight\" data-id=\"674b1d0\" data-element_type=\"widget\" data-widget_type=\"code-highlight.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"prismjs-default copy-to-clipboard \">\n\t\t\t<pre data-line=\"\" class=\"highlight-height language-javascript \">\n\t\t\t\t<code readonly=\"true\" class=\"language-javascript\">\n\t\t\t\t\t<xmp>namespace App\\Http\\Controllers;\r\n\r\nuse App\\Models\\ZoomMeeting;\r\nuse App\\Traits\\ZoomMeetingTrait;\r\nuse Illuminate\\Http\\Request;\r\n\r\nclass MeetingController extends AppBaseController\r\n{\r\n    use ZoomMeetingTrait;\r\n\r\n    const MEETING_TYPE_INSTANT = 1;\r\n    const MEETING_TYPE_SCHEDULE = 2;\r\n    const MEETING_TYPE_RECURRING = 3;\r\n    const MEETING_TYPE_FIXED_RECURRING_FIXED = 8;\r\n\r\n    public function show($id)\r\n    {\r\n        $meeting = $this->get($id);\r\n\r\n        return view('meetings.index', compact('meeting'));\r\n    }\r\n\r\n    public function store(Request $request)\r\n    {\r\n        $this->create($request->all());\r\n\r\n        return redirect()->route('meetings.index');\r\n    }\r\n\r\n    public function update($meeting, Request $request)\r\n    {\r\n        $this->update($meeting->zoom_meeting_id, $request->all());\r\n\r\n        return redirect()->route('meetings.index');\r\n    }\r\n\r\n    public function destroy(ZoomMeeting $meeting)\r\n    {\r\n        $this->delete($meeting->id);\r\n\r\n        return $this->sendSuccess('Meeting deleted successfully.');\r\n    }\r\n}<\/xmp>\n\t\t\t\t<\/code>\n\t\t\t<\/pre>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cf7755b elementor-widget elementor-widget-text-editor\" data-id=\"cf7755b\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<p>So this is all you need to integrate the zoom API, so easy \ud83d\ude42 Right. Enjoy the code.<\/p>\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>laravel, zoom meeting, zoom api, laravel zoom meeting<\/p>\n","protected":false},"author":2,"featured_media":4771,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"postBodyCss":"","postBodyMargin":[],"postBodyPadding":[],"postBodyBackground":{"backgroundType":"classic","gradient":""},"two_page_speed":[],"footnotes":""},"categories":[9],"tags":[39,19,149],"class_list":["post-4769","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-laravel","tag-learning","tag-zoom-meeting-apis"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to integrate Zoom Meeting APIs with Laravel<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to integrate Zoom Meeting APIs with Laravel\" \/>\n<meta property=\"og:description\" content=\"laravel, zoom meeting, zoom api, laravel zoom meeting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog | InfyOm Technologies\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/infyom\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-11T10:43:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-06T10:47:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png\" \/>\n\t<meta property=\"og:image:width\" content=\"772\" \/>\n\t<meta property=\"og:image:height\" content=\"484\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InfyOm\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@InfyOm\" \/>\n<meta name=\"twitter:site\" content=\"@InfyOm\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InfyOm\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\"},\"author\":{\"name\":\"InfyOm\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754\"},\"headline\":\"How to integrate Zoom Meeting APIs with Laravel\",\"datePublished\":\"2020-11-11T10:43:23+00:00\",\"dateModified\":\"2024-08-06T10:47:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\"},\"wordCount\":200,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/infyom.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png\",\"keywords\":[\"Laravel\",\"Learning\",\"Zoom Meeting APIs\"],\"articleSection\":[\"Laravel\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\",\"url\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\",\"name\":\"How to integrate Zoom Meeting APIs with Laravel\",\"isPartOf\":{\"@id\":\"https:\/\/infyom.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png\",\"datePublished\":\"2020-11-11T10:43:23+00:00\",\"dateModified\":\"2024-08-06T10:47:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage\",\"url\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png\",\"contentUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png\",\"width\":772,\"height\":484,\"caption\":\"How to integrate Zoom Meeting APIs with Laravel\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/infyom.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to integrate Zoom Meeting APIs with Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/infyom.com\/blog\/#website\",\"url\":\"https:\/\/infyom.com\/blog\/\",\"name\":\"Blog | InfyOm Technologies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/infyom.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/infyom.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/infyom.com\/blog\/#organization\",\"name\":\"InfyOm Technologies\",\"url\":\"https:\/\/infyom.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png\",\"contentUrl\":\"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png\",\"width\":88,\"height\":41,\"caption\":\"InfyOm Technologies\"},\"image\":{\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/infyom\",\"https:\/\/x.com\/InfyOm\",\"https:\/\/www.instagram.com\/infyomtechnologies\/\",\"https:\/\/in.linkedin.com\/company\/infyom-technologies\",\"https:\/\/github.com\/infyomlabs\",\"https:\/\/x.com\/infyom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754\",\"name\":\"InfyOm\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/infyom.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g\",\"caption\":\"InfyOm\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to integrate Zoom Meeting APIs with Laravel","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/","og_locale":"en_US","og_type":"article","og_title":"How to integrate Zoom Meeting APIs with Laravel","og_description":"laravel, zoom meeting, zoom api, laravel zoom meeting","og_url":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/","og_site_name":"Blog | InfyOm Technologies","article_publisher":"https:\/\/www.facebook.com\/infyom","article_published_time":"2020-11-11T10:43:23+00:00","article_modified_time":"2024-08-06T10:47:43+00:00","og_image":[{"width":772,"height":484,"url":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png","type":"image\/png"}],"author":"InfyOm","twitter_card":"summary_large_image","twitter_creator":"@InfyOm","twitter_site":"@InfyOm","twitter_misc":{"Written by":"InfyOm","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#article","isPartOf":{"@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/"},"author":{"name":"InfyOm","@id":"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754"},"headline":"How to integrate Zoom Meeting APIs with Laravel","datePublished":"2020-11-11T10:43:23+00:00","dateModified":"2024-08-06T10:47:43+00:00","mainEntityOfPage":{"@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/"},"wordCount":200,"commentCount":0,"publisher":{"@id":"https:\/\/infyom.com\/blog\/#organization"},"image":{"@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png","keywords":["Laravel","Learning","Zoom Meeting APIs"],"articleSection":["Laravel"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/","url":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/","name":"How to integrate Zoom Meeting APIs with Laravel","isPartOf":{"@id":"https:\/\/infyom.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage"},"image":{"@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage"},"thumbnailUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png","datePublished":"2020-11-11T10:43:23+00:00","dateModified":"2024-08-06T10:47:43+00:00","breadcrumb":{"@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#primaryimage","url":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png","contentUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/07\/how-to-integrate-zoom-meeting-apis-with-laravel-2020-12-26-5fe732e710adb.png","width":772,"height":484,"caption":"How to integrate Zoom Meeting APIs with Laravel"},{"@type":"BreadcrumbList","@id":"https:\/\/infyom.com\/blog\/how-to-integrate-zoom-meeting-apis-with-laravel\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/infyom.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to integrate Zoom Meeting APIs with Laravel"}]},{"@type":"WebSite","@id":"https:\/\/infyom.com\/blog\/#website","url":"https:\/\/infyom.com\/blog\/","name":"Blog | InfyOm Technologies","description":"","publisher":{"@id":"https:\/\/infyom.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/infyom.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/infyom.com\/blog\/#organization","name":"InfyOm Technologies","url":"https:\/\/infyom.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png","contentUrl":"https:\/\/infyom.com\/blog\/wp-content\/uploads\/2024\/06\/InfyOm-Logo.png","width":88,"height":41,"caption":"InfyOm Technologies"},"image":{"@id":"https:\/\/infyom.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/infyom","https:\/\/x.com\/InfyOm","https:\/\/www.instagram.com\/infyomtechnologies\/","https:\/\/in.linkedin.com\/company\/infyom-technologies","https:\/\/github.com\/infyomlabs","https:\/\/x.com\/infyom"]},{"@type":"Person","@id":"https:\/\/infyom.com\/blog\/#\/schema\/person\/659bfc844c333d041221e83c5f5ec754","name":"InfyOm","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/infyom.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1ad162864d8d33c04ea9e6d0333cc483?s=96&d=mm&r=g","caption":"InfyOm"}}]}},"_links":{"self":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts\/4769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/comments?post=4769"}],"version-history":[{"count":25,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts\/4769\/revisions"}],"predecessor-version":[{"id":5160,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/posts\/4769\/revisions\/5160"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/media\/4771"}],"wp:attachment":[{"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/media?parent=4769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/categories?post=4769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/infyom.com\/blog\/wp-json\/wp\/v2\/tags?post=4769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}