opened
timabbott
username_0
We've been getting an increasing number of requests for more video conferencing integrations in Zulip (in part because not everyone uses Google, and Jitsi isn't great).  zoom.us seems to be the leading option in this space, and in any case, building out the integration strategy for it should provide a clear template for how to do other integrations which require a similar API setup.

Unlike our existing Jitsi and Hangouts integrations, zoom doesn't support the "generate a random call URL without talking to an API" feature we use, but is shouldn't be hard to add something equivalent.  What we'll want to do is the following:

* We'll probably need to sign up for a Zoom free trial or email them for a comped developer account.
* For the settings part of this, like the Hangouts integration's `video_chat_provider`, we have a field `zoom_credentials` where the user can provide the Zoom userId and apiKey.  When a user uploads these, we validate via a random Zoom API call that the credentials are valid.  Maybe e.g. https://marketplace.zoom.us/docs/api-reference/zoom-api/users/userpermission on the current user.
* Add a new backend endpoint `/calls/create`.  When this endpoint is triggered, it will use the Zoom API to create a meeting (https://marketplace.zoom.us/docs/api-reference/zoom-api/meetings/meetingcreate) and return the URL for the link.
* When the organization has the Zoom setting enabled and clicks the "create video call" button, we query the server API, and when we get the response, enter the URL into Zulip.

@username_2 this could be a good project for you, since I think we'll want to use some of your fancy link-replacement stuff in the compose box that you build for uploads with it.

I'm going to email them about the developer account issue now, but I think most of the work here can proceed without that.
Add a zoom.us video conferencing option
issue
created
rishig
username_1
Just to clarify, "user" here will still be an admin, so that there is one API key per realm. We'll also want to make sure the actual API key is not exposed in the UI, once it has been entered and sent to our server.

Zoom allows you to do fancy stuff with your personal API key, but I think we want to skip that for the V1 at least.
comment
created
skunkmb
username_2
@zulipbot claim
comment
created
skunkmb
username_2
@zulipbot claim
comment
created
rishig
username_1
By the way, we have a number of potential users migrating from HipChat that are asking for this, so would be great to get this in soon!
comment
closed
timabbott
username_0
issue