# Embedding Zoom webinar in website

**URL:** <https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247>\
**Category:** Web\
**Tags:** webinar\
**Created:** [April 28, 2022, 5:58am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247 "2022-04-28T05:58:20Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![shravaniT](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shravanit/32/35228_2.png) [@shravaniT](https://devforum.zoom.us/u/shravaniT)\
**Post date:** [April 28, 2022, 5:58am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/1 "2022-04-28T05:58:20Z")

</div>

I have a client requirement where we need to embed zoom webinars into website. We are using Drupal for building the website. My question is if we can create the webinars and start webinars from outside is it better to use JWT to embed and join or Zoom Meeting Web SDK more suitable.  
Are we able to create webinars from website as well?  
Does Q&A work with JWT as well?  
Any documentation links are appreciated.I was looking at this [Zoom Meeting Web SDK](https://marketplace.zoom.us/docs/sdk/native-sdks/web)

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [May 4, 2022, 4:19pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/2 "2022-05-04T16:19:47Z")

</div>

Hi, @shravaniT,  
Thank you for posting and for choosing to build with Zoom.

> [@shravaniT](#):
>
> My question is if we can create the webinars and start webinars from outside is it better to use JWT to embed and join or Zoom Meeting Web SDK more suitable.

We strongly recommend using the Zoom Meeting Web SDK over JWT. JWT may only be used for internal applications and processes. All apps created for third-party usage must use our **OAuth** app type.

> [@shravaniT](#):
>
> Are we able to create webinars from website as well?

Yes, you can create a Webinar from your Website via our APIs. We offer Create, Update, Read, and Delete Webinar API endpoints that you can leverage to develop a seamless user experience. As reference, I’ve linked the mentioned API endpoints you will want to use in your developer process below.

## [Create a webinar](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/webinarCreate)

## [Update a webinar](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/webinarUpdate)

## [Get a webinar](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/webinar)

## [Delete a webinar](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/webinarDelete)

> [@shravaniT](#):
>
> Does Q&A work with JWT as well?

Are asking does the Q&A feature work with Web SDK ? If so, yes, it works. See a list of supported SDK features in our Zoom Meeting Web SDK help documentation : [Zoom Meeting Web SDK](https://marketplace.zoom.us/docs/sdk/native-sdks/web/)

 ![Screen Shot 2022-05-04 at 12.17.16 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/0/c/0cf7fb18386fae60a611c5b06fb70afcf8836f81.png)

---

<div class="post-metadata">

**Author:** ![shravaniT](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shravanit/32/35228_2.png) [@shravaniT](https://devforum.zoom.us/u/shravaniT)\
**Post date:** [May 16, 2022, 6:02am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/3 "2022-05-16T06:02:03Z")

</div>

Hi Donte,  
Thanks for your reply.  
We are making this API calls from a Drupal9 website.We need the Component view of web sdk just to render the meetings/webinars in the websites at this stage with a scope to create/update/delete webinars from websites at a later stage.  
In order to render this component view onto website and start the website, i am following this documentation [Meetings](https://marketplace.zoom.us/docs/sdk/native-sdks/web/component-view/meetings).  
In this for joining the meeting/webinar in the website we need the SDK JWT signature.  
Can you please direct me in the right direction.

If i have to follow OAuth as per this ([Zoom Developer Docs](https://marketplace.zoom.us/docs/api-reference/zoom-api/)), I do not see the Join function. Do we have join functionality through website using OAuth as well?

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [May 18, 2022, 12:53pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/4 "2022-05-18T12:53:47Z")

</div>

@shravaniT,

Happy to help! Down below I’ve linked our Generate Signature help documentation along with the Sample App. The documentation included snippets from different languages if you looking for something specific.

> **[GitHub - zoom/meetingsdk-sample-signature-node.js: Generate a signature to...](https://github.com/zoom/meetingsdk-sample-signature-node.js)**
>
> Generate a signature to Start and Join Meetings and Webinars with the Zoom Meeting SDKs. - GitHub - zoom/meetingsdk-sample-signature-node.js: Generate a signature to Start and Join Meetings and Web...

> **[Generate Signature](https://marketplace.zoom.us/docs/sdk/native-sdks/web/signature/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

---

<div class="post-metadata">

**Author:** ![shravaniT](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shravanit/32/35228_2.png) [@shravaniT](https://devforum.zoom.us/u/shravaniT)\
**Post date:** [May 20, 2022, 12:43am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/5 "2022-05-20T00:43:04Z")

</div>

Hi Donte,

Could you please clarify these below questions:

1. I am using JWT app credentials then i can access the users,meetings and webinars etc of my zoom account from the website directly through API(we do not need anyone to add webinars or install the app) it is just from website to API. In this case is it ok to use JWT app credentials

2. With JWT credentials i successfully made connection and i could grab meeting details and add registrants and get registrants to my website.I got the join url for the required users email and got tk value.  
Now inorder to render the meeting on the website i need to use component/client view of websdk by pointing to CDN or npm. IS this correct

3. Assuming i have to use component view, i added CDN and created signature and tried to render the meeting but receiving invalid signature  
When i tested by downlading this [sample-web-app](https://github.com/zoom/sample-app-web) and used my JWT credentials, its working for meeting without registration but not working for meeting with registration or SDK app type credentials  
I am getting error when i used the PHP code example to generate signature as well

4. If i were to use OAuth for API calls, do i need to create a SDK APP, Does it need to be published to test. Just to test i created SDK APP.  
I downloaded postman collection and tried to test with SDK credentials but i am not successful in receiving Access Token. Please provide instructions on this for PHP.

---

<div class="post-metadata">

**Author:** ![shravaniT](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shravanit/32/35228_2.png) [@shravaniT](https://devforum.zoom.us/u/shravaniT)\
**Post date:** [May 31, 2022, 5:22am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/6 "2022-05-31T05:22:54Z")

</div>

HI Donte, any help please  
We are developing this embedding in Drupal CMS(Which is PHP based). Can you please confirm if the below process is correct.

We have to call zoom-API with SDK app type credentials to get the meeting/webinar details and get/manage registrant details within Php functions with this documentation [Webinar Registrants](https://marketplace.zoom.us/docs/api-reference/zoom-api/methods/#operation/webinarRegistrants)  
and create signature with this doc in [php](https://marketplace.zoom.us/docs/sdk/native-sdks/web/signature/), Then pass the sdk key and signature and other details to websdk using CDN as per [here](https://marketplace.zoom.us/docs/sdk/native-sdks/web/component-view/webinars#join-webinar)

1.I am stuck on making API calls authentication failing with request as below request: with SDK key linked SDK app of [test\_vccc\_alliance@lists.unimelb.edu.au](mailto:test_vccc_alliance@lists.unimelb.edu.au) account

$curl = curl\_init();

curl\_setopt\_array($curl, array(

CURLOPT\_URL =\> ‘[https://api.zoom.us/v2/users](https://api.zoom.us/v2/users)’,

CURLOPT\_RETURNTRANSFER =\> true,

CURLOPT\_ENCODING =\> ‘’,

CURLOPT\_MAXREDIRS =\> 10,

CURLOPT\_TIMEOUT =\> 0,

CURLOPT\_FOLLOWLOCATION =\> true,

CURLOPT\_HTTP\_VERSION =\> CURL\_HTTP\_VERSION\_1\_1,

CURLOPT\_CUSTOMREQUEST =\> ‘GET’,

CURLOPT\_HTTPHEADER =\> array(

‘Accept: application/json’,

‘Content-Type: application/json’,

‘Authorization: Bearer SDK KEy’ ),

));

$response = curl\_exec($curl);

curl\_close($curl);

echo $response;

**Response received:**

{“code”:124,“message”:“Invalid access token.”}

1. And also the signature code i used in PHP from the above example is giving invalid Signature on Client.join using the CDN

function generate\_signature ( $api\_key, $api\_secret, $meeting\_number, $role){

//Set the timezone to UTC

date\_default\_timezone\_set(“UTC”);

$time = time() \* 1000 - 30000;//time in milliseconds (or close enough)

$data = base64\_encode($api\_key . $meeting\_number . $time . $role);

$hash = hash\_hmac(‘sha256’, $data, $api\_secret, true);

$\_sig = $api\_key . “.” . $meeting\_number . “.” . $time . “.” . $role . “.” . base64\_encode($hash);

//return signature, url safe base64 encoded

return rtrim(strtr(base64\_encode($_sig), ‘+/’, '-_’), ‘=’);

}

i used the same SDK key as above and SDK secret associated and meeting number 83875216292 with role 0

Could you please guide me in the right direction why my calls are not successful.

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [June 1, 2022, 9:22pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/7 "2022-06-01T21:22:09Z")

</div>

@shravaniT,

> [@shravaniT](#):
>
> 1.I am stuck on making API calls authentication failing with request as below request: with SDK key linked SDK app of [REDACTED] account

The Zoom Meeting SDKs use an SDK Key and Secret to [generate an SDK JWT](https://marketplace.zoom.us/docs/sdk/native-sdks/auth/#generate-the-sdk-jwt) for authorized use of the SDK. You will want to make the API call with the signature, not the SDK Key and Secret.

> [@shravaniT](#):
>
> i used the same SDK key as above and SDK secret associated and meeting number 83875216292 with role 0

Have you tried to decode the signature to verify it’s correct or not? Please see this post for instructions on decoding and inspecting the signature.

> [@How to determine role value for signature](https://devforum.zoom.us/t/how-to-determine-role-value-for-signature/69170/2):
>
> Hi, @_maksym, Thank you for posting. One approach you can consider is to decode the signature, the format will be [JSON Web Token](https://marketplace.zoom.us/docs/sdk/native-sdks/auth#generate-the-sdk-jwt), Addendum If using SDK App type, debug by [https://jwt.io](https://jwt.io)Example signature created with SDK App type: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZGtLZXkiOiJhYmMxMjMiLCJtbiI6IjEyMzQ1Njc4OSIsInJvbGUiOjAsImlhdCI6MTY0NjkzNzU1MywiZXhwIjoxNjQ2OTQ0NzUzLCJhcHBLZXkiOiJhYmMxMjMiLCJ0b2tlbkV4cCI6MTY0Njk0NDc1M30.UcWxbWY-y22wFarBBc9i3lGQuZAsuUpl8GRR8wUah2M [jwt.io](https://jwt.io)

Also, you can find a sample Node.js generate a signature function that you can reference for implementation :

[https://marketplace.zoom.us/docs/sdk/native-sdks/auth](https://marketplace.zoom.us/docs/sdk/native-sdks/auth)

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [June 1, 2022, 10:46pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/8 "2022-06-01T22:46:07Z")

</div>

> [@shravaniT](#):
>
> I am using JWT app credentials then i can access the users,meetings and webinars etc of my zoom account from the website directly through API(we do not need anyone to add webinars or install the app) it is just from website to API. In this case is it ok to use JWT app credentials

JWT will be deprecated soon. You should leverage the OAuth access token to make API calls.

[https://marketplace.zoom.us/docs/guides/build/jwt-app/jwt-faq](https://marketplace.zoom.us/docs/guides/build/jwt-app/jwt-faq)

> [@shravaniT](#):
>
> With JWT credentials I successfully made the connection and I could grab meeting details and add registrants and get registrants to my website. I got the join URL for the required user’s email and got tk value.  
> Now in order to render the meeting on the website I need to use component/client view of websdk by pointing to CDN or npm. IS this correct

Correct! You will need to leverage our Web SDK component/client to embed Zoom into your site.

> **[Support](https://developers.zoom.us/support/)**
>
> Support plans that provide prioritized developer-specific resources.

> **[GitHub - zoom/meetingsdk-web-sample: Zoom Meeting SDK web sample](https://github.com/zoom/meetingsdk-web-sample)**
>
> Zoom Meeting SDK web sample

> [@shravaniT](#):
>
> Assuming I have to use component view, I added CDN and created a signature, and tried to render the meeting but received an invalid signature. When I tested by downloading this [sample-web-app](https://github.com/zoom/sample-app-web) and used my JWT credentials, it’s working for meetings without registration but not working for meeting with registration or SDK app type credentials  
> I am getting error when i used the PHP code example to generate signature as well

Strange. I am not able to reproduce that behavior on my end. As a test, can you use our Sample Signature node.js app instead of your function and let us know if the problem persists. You would just need to make a post request to the [http://localhost:4000](http://localhost:4000) with the following body:

{  
“meetingNumber”: “91902958596”,  
“role”: 0  
}

> **[GitHub - zoom/meetingsdk-auth-endpoint-sample: Generate a Meeting SDK JWT to join Zoom meetings...](https://github.com/zoom/meetingsdk-auth-endpoint-sample)**
>
> Generate a Meeting SDK JWT to join Zoom meetings and webinars with the Meeting SDK.

> [@shravaniT](#):
>
> If i were to use OAuth for API calls, do i need to create a SDK APP, Does it need to be published to test. Just to test i created SDK APP.  
> I downloaded postman collection and tried to test with SDK credentials but i am not successful in receiving Access Token. Please provide instructions on this for PHP.

# Note:

- The signature is only for authorizing use of the SDK.
- You do not need to publish to test the SDK APP.
- The SDK App type has OAuth credentials you leverage to manage meeting flows programmatically using Meetings APIs

 ![Screen Shot 2022-06-01 at 5.57.38 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/a/7ab90cf889fa4200452320036fba061f06c82627.png)

 ![Screen Shot 2022-06-01 at 6.05.41 PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/d/7d9976644685d8819bf5fbfce93cb0cbb903e13a.png)

---

<div class="post-metadata">

**Author:** ![shravaniT](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/shravanit/32/35228_2.png) [@shravaniT](https://devforum.zoom.us/u/shravaniT)\
**Post date:** [June 28, 2022, 11:21pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/10 "2022-06-28T23:21:55Z")

</div>

Thank you so much for your time in meeting today and Elisa, Further to our discussion what I am looking for is to get a component view work on our Drupal website. Which is failing with signature Invalid error.  
To resolve this I need some help with a PHP script to generate a signature to work with the Component view with SDK credentials/JWT credentials.

The code I used to generate the signature is from the below link which didn’t work [Generate Signature](https://marketplace.zoom.us/docs/sdk/native-sdks/web/signature/)

I can not use node.js as we could not integrate node.js into Drupal9 . Rendering Component view into website is the only thing i am looking for help.

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [June 29, 2022, 1:05am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/11 "2022-06-29T01:05:18Z")

</div>

@shravaniT,

Pleasure meeting with you as well. Following our meeting, I did some testing and can confirm the PHP Signature code sample found [here](https://marketplace.zoom.us/docs/sdk/native-sdks/web/signature/) works. Here is what I did:

1. Using an online editor and JWT API Key and Secret, I generated the signature with the code sample

2. Using the Web Meeting-SDK [Component View](https://github.com/zoom/meetingsdk-web-sample/tree/master/Components) Sample App, copy the Direct Join URL and replace the signature parameters value with the generated signature

3. To test Join, open a new tab and paste the URL in the browser.

Can you test the flow on your end using the Sample App and let us know the results.

---

<div class="post-metadata">

**Author:** ![j.schoenemeyer](https://avatars.discourse-cdn.com/v4/letter/j/f9ae1b/32.png) [@j.schoenemeyer](https://devforum.zoom.us/u/j.schoenemeyer)\
**Post date:** [June 29, 2022, 2:55pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/12 "2022-06-29T14:55:56Z")

</div>

are you sure you are using the right routine to create the signature

JWT Signature (deprecated):

> **[Generate Signature](https://marketplace.zoom.us/docs/sdk/native-sdks/web/signature/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

SDK JWT Signature:

> **[SDK Authentication](https://marketplace.zoom.us/docs/sdk/native-sdks/auth/)**
>
> The Zoom Developer Platform is an open platform that allows third-party developers to build applications and integrations upon Zoom’s video-first unified communications platform.

→ Node.js generate SDK JWT function

```auto
function generateSignature(sdkKey, sdkSecret, meetingNumber, role) {
  ... 
  KJUR.jws.JWS.sign('HS256', sHeader, sPayload, sdkSecret)
  ...
}

```

(no sample code exists - yet - in PHP)

Jürgen

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [June 30, 2022, 7:10pm UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/13 "2022-06-30T19:10:20Z")

</div>

Thank you for contributing to the Developer Forum @j.schoenemeyer! 😃

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [July 31, 2022, 5:10am UTC](https://devforum.zoom.us/t/embedding-zoom-webinar-in-website/68247/14 "2022-07-31T05:10:51Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
