# Host in Browser

**URL:** <https://devforum.zoom.us/t/host-in-browser/4528>\
**Category:** Web\
**Created:** [June 6, 2019, 12:43am UTC](https://devforum.zoom.us/t/host-in-browser/4528 "2019-06-06T00:43:22Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mikko](https://avatars.discourse-cdn.com/v4/letter/m/5f9b8f/32.png) [@mikko](https://devforum.zoom.us/u/mikko)\
**Post date:** [June 6, 2019, 12:43am UTC](https://devforum.zoom.us/t/host-in-browser/4528/1 "2019-06-06T00:43:22Z")

</div>

Hi I was wondering if a user can use the web client to host meetings.

From the docs [https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK/overview](https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK/overview) it says the you can use the web-client to join meetings but not host meetings?

---

<div class="post-metadata">

**Author:** ![michael\_p.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_p.zoom/32/18105_2.png) [@michael\_p.zoom](https://devforum.zoom.us/u/michael_p.zoom)\
**Post date:** [June 6, 2019, 5:00pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/2 "2019-06-06T17:00:34Z")

</div>

Hi @mikko,

Yes you can use the web client to host and join meetings.

Thanks

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [July 26, 2019, 11:54pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/3 "2019-07-26T23:54:35Z")

</div>

Hi Michael,  
Any example to host a meeting?

kevinatzoom

---

<div class="post-metadata">

**Author:** ![harald.glanzer](https://avatars.discourse-cdn.com/v4/letter/h/eada6e/32.png) [@harald.glanzer](https://devforum.zoom.us/u/harald.glanzer)\
**Post date:** [July 29, 2019, 8:49am UTC](https://devforum.zoom.us/t/host-in-browser/4528/4 "2019-07-29T08:49:04Z")

</div>

hi,

using the JS SDK, when generating the signature with ZoomMtg.generateSignature(), you can set the ‘role’ to 1 to become a host.

> [@Endmeeting via JS](https://devforum.zoom.us/t/endmeeting-via-js/4780):
>
> hi, how is ‘endMeeting’ to be used? i guess this only works for logged in users, but how to do that via JS API? regards, hari

regrads,  
hari

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 29, 2019, 3:11pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/5 "2019-07-29T15:11:15Z")

</div>

Thanks @harald.glanzer!

@kevinatzoom, let us know [if this answers your question](https://devforum.zoom.us/t/meeting-not-started/5040/5)!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [July 29, 2019, 3:44pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/6 "2019-07-29T15:44:35Z")

</div>

Hi Tommy,  
That make sense, we tried to embedded the JS SDK into our embedded Linux environment, which is arm64, the Linux version of Zoom client s for x86-64 platform, so any plan to release the ARM version?

Also for the JS SDK, we try to provide this web client for our customer to use, can they use their own zoom login credential to initiate joining/holding a meeting?

Kevinatzoom

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 29, 2019, 4:42pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/7 "2019-07-29T16:42:43Z")

</div>

Hey @kevinatzoom,

1. There is no Arm version planned for now, unless we get more customer requests.

2. I don’t know of your full use case, but it sounds like you can accomplish this by having your customers create a [JWT app](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-jwt-app) and use their own API credentials, or you could [implement OAuth](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app) so they could login to your app with their Zoom account and host/join meetings.

Let me know if this helps!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [July 30, 2019, 4:40pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/8 "2019-07-30T16:40:36Z")

</div>

Hi Tommy,

I am just confused a little bit, correct me if I was wrong. Is there any different between starting and creating a meeting. In this thread [https://devforum.zoom.us/t/web-sdk-version-1-5-0-is-now-live/5185/2](https://devforum.zoom.us/t/web-sdk-version-1-5-0-is-now-live/5185/2) , Michael mentioned the webSDk client cannot create a meeting but only start a meeting. I also noticed in order to generate a signature, a valid meeting number is need no matter the role is host or not.

Our use case is that porting zoom feature into our conference product. Since we are arm64 linux paltform, websdk is our only choice so far. We need our customer can use their own credential to login, join or start a new meeting, just like the android/windows zoom App. So the websdk do have limitation on allowing the customer to start a new meeting just like zoom app?

Kevin

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 30, 2019, 5:14pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/9 "2019-07-30T17:14:13Z")

</div>

Hey @kevinatzoom,

Sorry for the confusion. You can [start a meeting as a host using the Web SDK](https://devforum.zoom.us/t/meeting-not-started/5040/5), and yes you need to know the meetingID. One solution could be to always use [the personal meeting ID](https://support.zoom.us/hc/en-us/articles/201362843-What-is-Personal-Meeting-ID-PMI-and-Personal-Link-) so you know what meeting it is. Once your user logs in, you can[Get that user and grab their personal meeting id](https://marketplace.zoom.us/docs/api-reference/zoom-api/users/user).

Or you can create the meeting manually or using our [Create Meeting Endpoint](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate), then use the [List Meeting Endpoint](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetings) to find the meeting id (also the meeting number) and integrate that to start your meeting via the Web SDK.

Does this clear things up?

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [July 30, 2019, 8:59pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/10 "2019-07-30T20:59:15Z")

</div>

Hi Tommy,  
So I use my own zoom account to register a develop account, and then create a JWT key and secret. No matter I join either a new meeting id or PMI which was created by my zoom windows App, I get error “Can not be host in other account’s meeting”. Is that the problem the key and secret are not the same with my normal account?

When you talking about starting a meeting as host use websdk, who is the creator of this meeting and how? Do I need create a meeting use this key and secret to manually or use “Create Meeting Endpoint” first, then join as host?  
Thank you.

Kevin

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 31, 2019, 1:01am UTC](https://devforum.zoom.us/t/host-in-browser/4528/11 "2019-07-31T01:01:29Z")

</div>

Hey @kevinatzoom,

The [PMI](https://zoom.us/profile) and [JWT Key and Secret](https://marketplace.zoom.us/user/build) must be from the same account.

> [@kevinatzoom](#):
>
> When you talking about starting a meeting as host use websdk, who is the creator of this meeting and how?

The creator of this meeting via the Web SDK `"role":1` needs to be whoever owns the JWT API Credentials. Basically it uses the PMI to start an Instant meeting feature ([as shown in your profile](https://zoom.us/profile))

![56%20PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/5/51eb207794dc73b8446041c40e06e609f5d759ef.png)

> [@kevinatzoom](#):
>
> Do I need create a meeting use this key and secret to manually or use “Create Meeting Endpoint” first, then join as host?

I just figured out how to **Create and Start** a meeting on your App using [OAuth](https://marketplace.zoom.us/docs/guides/getting-started/app-types/create-oauth-app) without the Zoom JS SDK:

1. When a user comes to your Web app, [they OAuth (login with Zoom)](https://marketplace.zoom.us/docs/guides/authorization/oauth/oauth-with-zoom) and you get an access\_token which you can use to call API’s on their behalf.
2. Then they click a “Create meeting” button you made on your site, which [creates a meeting (on their account via the Create Meeting Endpoint)](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate). Save the start\_url in the response.
3. Then they click a “Start/Join Meeting” meeting button you made on your site which displays a html iframe with the start\_url. (Or skip the button part and display the iframe after you get the response from Step 2.)

```html
<iframe src="{{ START_URL }}" width="1000px" height="500px"></iframe>

```

 ![18%20PM](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/2X/3/3360134644fe3700151b236e0ed64928aa1c8698.jpeg)

(You could keep the Zoom JS SDK if you want a pre built solution if you ever need to join meetings with or without OAuth, but to start the meeting and join as a host use the solution above)

I found figured out this solution from our JS Web SDK example docs [here](https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK/build-your-first-app/join-appointment-online).

Let me know if this helps!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [July 31, 2019, 6:10pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/12 "2019-07-31T18:10:26Z")

</div>

Hi Tommy,  
That make sense, I will try it first. Thanks.

Kevin

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [July 31, 2019, 6:31pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/13 "2019-07-31T18:31:54Z")

</div>

Let me know if you get stuck along the way. Happy to help! 🙂

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [August 2, 2019, 8:11pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/14 "2019-08-02T20:11:29Z")

</div>

Hi Tommy,  
I did try your method. We always want our custom control their own account. So I did create Oauth in order to get the permission. I can create a meeting through zoom’s endpoint and get the start\_url and join\_url. Then I tried you iframe method with the “start\_url” and I only get a black screen. And also, all the instruction form here [https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK](https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK) is based on JWT App key/secret method. So how could you make work without the JS SDK, I think the Oauth can work with SDK.

Thanks.  
Kevin

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 2, 2019, 10:49pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/15 "2019-08-02T22:49:41Z")

</div>

Hey @kevinatzoom,

What browser were you trying the iFrame method in?

Your use case of multiple users and logins will only work with the OAuth App Type.

JWT is a one(host) to one/many (participants) solution where the JWT Creds owner will always be the host of the meeting, and users joining will not be signed in, but just “Join” the web client with a set username. The [examples here](https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK/build-your-first-app/introduce) is a Doctor uses the JWT JS SDK to always be the host of a meeting and a custom login system separate from Zoom where users can join meetings without having to login with Zoom. Essentially “white labeling Zoom.”

I am sorry we don’t support your use case with Zoom OAuth and JS SDK yet.

If you have more questions about this feel free to ask!

Thanks,  
-Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [August 3, 2019, 12:03am UTC](https://devforum.zoom.us/t/host-in-browser/4528/16 "2019-08-03T00:03:50Z")

</div>

Hi Tommy,  
I am using chrome. You said in the step3, you embedded the meeting’s start\_url with iframe, and join the meeting as a host in the webpage, how can you do that without any sdk?

Kevin

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 5, 2019, 4:24pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/17 "2019-08-05T16:24:33Z")

</div>

Hey @kevinatzoom,

Can you try this flow:

1. [Create meeting](https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) and get the `start_url` in the response
2. Parse out the `zak` token query param.
3. Display an iFrame with this url `https://zoom.us/wc/MEETINGID/start?zak=ZAKTOKEN

This will start the created meeting as the host in an iframe on your site. (All OAuth, not using SDK.)

Here is the sample code:

```auto
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Sample Zoom Browser</title>
  </head>
  <body>
    <h1>Sample Zoom Browser</h1>
    <p>Start a meeting in browser as a host</p>

    <iframe src="https://zoom.us/wc/MEETINGID/start?zak=ZAKTOKEN" width="1000px" height="500px"></iframe>

  </body>
</html>

```

Here is a sample app that does this.

Let me know if this works!

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [August 5, 2019, 6:20pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/18 "2019-08-05T18:20:11Z")

</div>

Hi Tommy,  
Thanks. I will try today, But I just very curious, if this web page’s meeting is not handled by JS SDK. who-else control the interface and hold the meeting.  
Kevin

---

<div class="post-metadata">

**Author:** ![tommy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/tommy/32/72769_2.png) [@tommy](https://devforum.zoom.us/u/tommy)\
**Post date:** [August 5, 2019, 6:40pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/19 "2019-08-05T18:40:36Z")

</div>

Hey @kevinatzoom,

The [host settings](https://zoom.us/profile/setting) would control the interface, and whomever created the meeting (the host) would start/hold the meeting.

Your other users can join the meeting using the `join_url` inside an iFrame.

If you want to customize the interface further, you do need to use the [JS SDK](https://marketplace.zoom.us/docs/sdk/native-sdks/Web-Client-SDK/overview).

Thanks,  
Tommy

---

<div class="post-metadata">

**Author:** ![kevinatzoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/kevinatzoom/32/1393_2.png) [@kevinatzoom](https://devforum.zoom.us/u/kevinatzoom)\
**Post date:** [August 5, 2019, 9:22pm UTC](https://devforum.zoom.us/t/host-in-browser/4528/20 "2019-08-05T21:22:54Z")

</div>

Hi Tommy,  
Thanks, I got this working with your new iframe src format. Other than use the JS SDK, zoom server seems setting up it’s own JS webclient. And yes, I can not customize the interface, and the camera seems cannot been detected also. So my question is when the JS SDK will work with OAuth or this “zak” method. Or if this will never gone true, how to use the JWT to acess the REST API to manage the meeting, since I only saw OAuth method to access those REST/APIs.

Kevin

[Next page](https://devforum.zoom.us/t/host-in-browser/4528.md?page=2)
