events.action: opened
events.author: timabbott
events.text: 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.
  
  @skunkmb 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.
events.title: Add a zoom.us video conferencing option
events.type: issue
events.action: created
events.author: rishig
events.text: 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.
events.type: comment
events.action: created
events.author: skunkmb
events.text: @zulipbot claim
events.type: comment
events.action: created
events.author: skunkmb
events.text: @zulipbot claim
events.type: comment
events.action: created
events.author: rishig
events.text: 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!
events.type: comment
events.action: closed
events.author: timabbott
events.type: issue
data_with_bots.bot: Hello @skunkmb, you claimed this issue to work on it, but this issue and any referenced pull requests haven't been updated for 10 days. Are you still working on this issue?
  
  If so, please update this issue by leaving a comment on this issue to let me know that you're still working on it. Otherwise, I'll automatically remove you from this issue in 4 days.
  
  If you've decided to work on something else, simply comment `@zulipbot abandon` so that someone else can claim it and continue from where you left off.
  
  Thank you for your valuable contributions to Zulip!
  
  <!-- inactiveWarning -->
data_with_bots.meta: This message directly preceded comment from bot *zulipbot* by author *skunkmb*:
data_with_bots.text: @zulipbot claim
data_without_bots.meta: This message directly preceded comment from bot *zulipbot* by author *skunkmb*:
data_without_bots.text: @zulipbot claim