Skip to content

Commit

Permalink
Add docs folder (mattermost#155)
Browse files Browse the repository at this point in the history
  • Loading branch information
hanzei authored Aug 24, 2020
1 parent 28c93e7 commit 09a51bf
Show file tree
Hide file tree
Showing 31 changed files with 270 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitbook.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
root: ./docs/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Start and join voice calls, video calls and use screen sharing with your team me
* **`/zoom disconnect`** — Disconnect from zoom (if OAuth is enabled).
* **`/zoom help`** — Display help message.

Check our [GitBook](https://app.gitbook.com/@mattermost/s/plugin-zoom/) for further documentation about this plugin.
Check our [GitBook](https://mattermost.gitbook.io/plugin-zoom/) for further documentation about this plugin.

## Development

Expand Down
Binary file added docs/.gitbook/assets/2019-12-16_23-44-50.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/2019-12-16_23-52-27.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image (3).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/oauth_creds.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.gitbook/assets/settings.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
description: Connect with your team members easily
---

# Zoom Conferencing Plugin

The Mattermost/Zoom integration allows team members to initiate a Zoom meeting at the push of a button. All participants in a channel can easily join the Zoom meeting and the shared link is updated when the meeting is over.

![](.gitbook/assets/42196048-af54d2b8-7e30-11e8-80a0-5e160ae06f03.png)

20 changes: 20 additions & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Table of contents

* [Zoom Conferencing Plugin](README.md)

## Installation

* [Install Zoom Plugin](installation/install-zoom-plugin.md)
* [Zoom Configuration](installation/zoom-configuration/README.md)
* [Zoom Setup \(OAuth\)](installation/zoom-configuration/zoom-setup-oauth.md)
* [Zoom Setup \(JWT\)](installation/zoom-configuration/zoom-setup-jwt.md)
* [Webhook Configuration](installation/zoom-configuration/webhook-configuration.md)
* [Mattermost Setup](installation/mattermost-setup.md)

## Usage

* [Connect your Account](usage/connect-your-account.md)
* [Start Meetings](usage/start-meetings.md)
* [Development](development.md)
* [Help and Support](help-and-support.md)

18 changes: 18 additions & 0 deletions docs/development.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Development

## Development

This plugin contains both a server and web app portion.

Use `make dist` to build distributions of the plugin that you can upload to a Mattermost server for testing.

Use `make check-style` to check the style for the whole plugin.

### Server

Inside the `/server` directory, you will find the Go files that make up the server-side of the plugin. Within there, build the plugin like you would any other Go application.

### Web App

Inside the `/webapp` directory, you will find the JS and React files that make up the client-side of the plugin. Within there, modify files and components as necessary. Test your syntax by running `npm run build`.

10 changes: 10 additions & 0 deletions docs/help-and-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Help and Support

For Mattermost customers - please open a [support case](https://mattermost.zendesk.com/hc/en-us/requests/new) to ensure your issue is tracked properly.

For Questions, Suggestions and Help - please find us on our forum at [https://forum.mattermost.org/c/plugins](https://forum.mattermost.org/c/plugins)

Alternatively, join our pubic Mattermost server and join the Integrations and Apps channel here: [https://community-daily.mattermost.com/core/channels/integrations](https://community-daily.mattermost.com/core/channels/integrations)

To Contribute to the Mattermost project see [https://www.mattermost.org/contribute-to-mattermost/](https://www.mattermost.org/contribute-to-mattermost/)

17 changes: 17 additions & 0 deletions docs/installation/install-zoom-plugin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
description: Get the Mattermost plugin installed as a first step
---

# Install Zoom Plugin

### Install via Plugin Marketplace \(Recommended\)

1. Go to **Main Menu > Plugin Marketplace** in Mattermost
2. Search for "Zoom" or manually find the plugin from the list and click **Install**
3. After the plugin has downloaded and been installed, follow the instructions on [Zoom Configuration](zoom-configuration/)
4. After finishing the [Zoom Configuration](zoom-configuration/), follow the instructions on [Mattermost Setup](mattermost-setup.md)

### \(Alternative\) Install via Manual Upload

If your server doesn't have access to the internet, you can download the [latest plugin binary release](https://github.com/mattermost/mattermost-plugin-zoom/releases) and upload it to your server via **System Console > Plugin Management.** The binary releases on the page above, are the same as used by the Marketplace.

42 changes: 42 additions & 0 deletions docs/installation/mattermost-setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
description: Configuration steps for the Mattermost server
---

# Mattermost Setup

## Zoom Plugin Setup Guide

{% hint style="info" %}
You will need a paid Zoom account to use the plugin.
{% endhint %}

### First steps

* Enable settings for [overriding usernames](https://docs.mattermost.com/administration/config-settings.html#enable-integrations-to-override-usernames) and [overriding profile picture icons](https://docs.mattermost.com/administration/config-settings.html#enable-integrations-to-override-profile-picture-icons).
* Go to **System Console > Plugins > Zoom** to configure the Zoom Plugin.

![](../.gitbook/assets/image%20%281%29.png)

### Plugin configuration

* Set **Enable Plugin** to `true`
* How are you hosting Zoom?
* **Self Hosted?**
* If you're using a self-hosted private cloud or on-premise Zoom server, enter the **Zoom URL** and **Zoom API URL** for the Zoom server, for example `https://yourzoom.com` and `https://api.yourzoom.com/v2` respectively. Leave blank if you're using Zoom's vendor-hosted SaaS service.
* **Cloud Hosted?**
* Simply leave **Zoom API URL** and **Zoom URL** fields blank
* How are your users connecting to Zoom? \([more information](zoom-configuration/)\)
* **OAuth?**
* Set **Enable OAuth** to `true`
* Use the Client ID and Client Secret generated during [Zoom Configuration](zoom-configuration/zoom-setup-oauth.md) to fill in the fields **Zoom OAuth Client ID** and **Zoom OAuth Client Secret**
* Click the **Regenerate** button next to the field **At Rest Token Encryption Key**
* Make sure **Enable Password based authentication** is set to `false`
* Ignore **API Key** and **API Secret** fields
* **JWT/Password?**
* Make sure **Enable OAuth** is set to `false`
* Ignore the fields **Zoom OAuth Client ID**, **Zoom OAuth Client Secret** and **At Rest Token Encryption Key**
* Set **Enable Password based authentication** to `true`
* Use the API Key and API Secret generated during [Zoom Configuration](zoom-configuration/zoom-setup-jwt.md) to fill in the fields **API Key** and **API Secret**.
* If you are using Webhooks or Deauthorization, make sure you hit the **Regenerate** button on **Webhook Secret** field.
* Click **Save**

19 changes: 19 additions & 0 deletions docs/installation/zoom-configuration/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
description: >-
You'll need to choose which authnetication method you want your users to
connect their Zoom accounts
---

# Zoom Configuration

Zoom supports two authentication methods for your users to connect Mattermost and Zoom. Choose between using OAuth and JWT/Password based authentication:

1. [Oauth: ](zoom-setup-oauth.md)
* Each user will need to connect their Zoom account with their Mattermost account before they can use the integration. When they try to create a meeting for the first time, they will receive a message to connect their account, and will need to click "Approve" on a pop-up web page.
* Users can connect their MM/Zoom accounts even if their emails do not match
2. [JWT/Password](zoom-setup-jwt.md)
* Users don't have to connect their account to use the integration which makes it easy to get started.
* Uses JWT to pass security tokens. This may not be sufficiently secure for some customers.



21 changes: 21 additions & 0 deletions docs/installation/zoom-configuration/webhook-configuration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Webhook Configuration

## Configure Webhook Events

When a meeting finishes in Zoom, the original link shared in the channel can be changed to indicate the meeting has ended and how long it lasted. To enable this functionality, we need to create a webhook subscription in Zoom that tells the Mattermost server every time a meeting ends, then Mattermost can update the original Zoom message.

* Click on **Feature**
* Enable **Event Subscriptions**
* Click **Add New Event Subscription** and give it a name \(e.g. "Meeting Ended"\)
* Enter a valid **Event notification endpoint URL** \(`https://SITEURL/plugins/zoom/webhook?secret=WEBHOOKSECRET`\).
* `SITEURL` should be your Mattermost server URL
* `WEBHOOKSECRET` is generated during [Mattermost Setup](../mattermost-setup.md).

![Feature screen](../../.gitbook/assets/screenshot-from-2020-06-05-19-51-56.png)

* Click **Add events** and select the **End Meeting** event

![Event types screen](../../.gitbook/assets/screenshot-from-2020-06-05-20-43-04.png)

* Click **Done** and then save your App.

32 changes: 32 additions & 0 deletions docs/installation/zoom-configuration/zoom-setup-jwt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Zoom Setup \(JWT\)

We are going to set the **API Key** and **API Secret**, generated by Zoom and used to create meetings and pull user data:

* Go to [https://marketplace.zoom.us](https://marketplace.zoom.us) and log in.

## Create an App for Mattermost to connect with

* In the top left click on **Develop** and then **Build App**.
* Select **JWT** in **Choose your app type** section
* Enter a name for your app

## Configure your new JWT app to work with Mattermost

* Click Information
* Enter the **Company Name** and **Developer Contact Information** for your app.
* Click App Credentials
* Here you'll find your **API Key** and **API Secret**.
* These need to be copied and pasted into the Zoom Plugin configuration screen.

![App credentials screen](https://github.com/mattermost/docs/raw/master/source/images/zoom_api_key.png)

* Click **Activation** and activate the App.

{% hint style="info" %}
Users will need to sign-up for their own Zoom account using the same email address that they use for Mattermost. If the user attempts to start a Zoom meeting without a Zoom account, they will see the following error message: "We could not verify your Mattermost account in Zoom. Please ensure that your Mattermost email address matches your Zoom email address." In addition, the user must be added to the admin's Zoom account to quickly start a meeting.
{% endhint %}

## Finish Setting up Mattermost Server

* Follow the instructions for [Mattermost Setup](../mattermost-setup.md)

56 changes: 56 additions & 0 deletions docs/installation/zoom-configuration/zoom-setup-oauth.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
description: Steps to configure your Zoom account to work with Mattermost
---

# Zoom Setup \(OAuth\)

We are going to set the **OAuth ClientID** and **OAuth Secret**, generated by Zoom and used to create meetings and pull user data:

* Go to [https://marketplace.zoom.us/](https://marketplace.zoom.us/) and log in as an admin.

## Create an App for Mattermost to connect with

* In the top left click on **Develop** and then **Build App**.
* Select **OAuth** in **Choose your app type** section.
* Enter a name for your app.
* Choose **User-managed app** as the app type.
* Choose whether you **Would like to publish this app on Zoom Marketplace**. \(On most cases you will want this to be disabled, but the plugin support also apps to be published in the Zoom Marketplace\)
* Click **Create**.

![Create an OAuth app screen](../../.gitbook/assets/screenshot-from-2020-06-05-19-31-06.png)

## Configure your new Oauth App to work with Mattermost

* If you **would like to publish on Zoom Marketplace**, you will find two sets of values: **development** and **production**. Make sure you follow the next steps with the production values.
* Go to the **App Credentials** tab on the left. Here you'll find your **Client ID** and **Client Secret**.
* These will be needed during [Mattermost Setup](../mattermost-setup.md).
* Enter a Valid **Redirect URL for OAuth** \(`https://SITEURL/plugins/zoom/oauth2/complete`\) and add the same URL under **Whitelist URL**.
* `SITEURL` should be your Mattermost server URL



![App Credentials screen](../../.gitbook/assets/screenshot-from-2020-06-05-19-34-13.png)

## Add User Scopes to the App

* Click on **Scopes**
* Add following scopes **meeting:read**, **user:read**

![Scopes screen](../../.gitbook/assets/screenshot-from-2020-06-05-19-37-47.png)

## Deauthorization

This plugin allows users to be deauthorized directly from Zoom, in order to comply with Zoom’s commitment to security and the protection of User data. If you **would like to publish on Zoom Marketplace**, you will be able to set up a Deauthorization URL.

* Click on **Information**
* Near the end of the page, you will find a section called **Deauthorization Notification**
* Enter a valid **Endpoint URL** \(`https://SITEURL/plugins/zoom/deauthorization?secret=WEBHOOKSECRET`\).
* `SITEURL` should be your Mattermost server URL
* `WEBHOOKSECRET` is generated during [Mattermost Setup](../mattermost-setup.md).

![Deauthorization Notification section](../../.gitbook/assets/screenshot-from-2020-06-05-20-04-33.png)

## Finish Setting up Mattermost Server

* Follow the instructions for [Mattermost Setup](../mattermost-setup.md)

1 change: 1 addition & 0 deletions docs/placeholder
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

10 changes: 10 additions & 0 deletions docs/usage/connect-your-account.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
description: >-
Your administrator may require you to connect your Zoom account before
starting a meeting
---

# Connect your Account

The first time you create a meeting, you may be required to connect your account. Follow the instructions to connect your Zoom account.

12 changes: 12 additions & 0 deletions docs/usage/start-meetings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Start Meetings

## Usage

Once enabled, clicking the video icon in a Mattermost channel invites team members to join a Zoom call, hosted using the credentials of the user who initiated the call.

![](../.gitbook/assets/42196048-af54d2b8-7e30-11e8-80a0-5e160ae06f03.png)

## Slash Command

You can also start a meeting in any chat window by typing `/zoom start`

0 comments on commit 09a51bf

Please sign in to comment.