# Zoom Python client
[![Python tests](https://github.com/cern-vc/zoom-python-client/actions/workflows/python-tests.yml/badge.svg)](https://github.com/cern-vc/zoom-python-client/actions/workflows/python-tests.yml) [![pre-commit](https://github.com/cern-vc/zoom-python-client/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/cern-vc/zoom-python-client/actions/workflows/pre-commit.yaml) [![CodeQL](https://github.com/cern-vc/zoom-python-client/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/cern-vc/zoom-python-client/actions/workflows/codeql-analysis.yml) [![codecov](https://codecov.io/gh/cern-vc/zoom-python-client/branch/main/graph/badge.svg?token=04EY0K0P2S)](https://codecov.io/gh/cern-vc/zoom-python-client)
Zoom API Python client with support for [Server to Server Oauth tokens](https://developers.zoom.us/docs/internal-apps/s2s-oauth/)
## Install
This package is [available on Pypi](https://pypi.org/project/zoom-python-client/)
```bash
pip install zoom-python-client
```
## Requirements
- Python >= 3.9
## Usage
### Defining your env variables
Define the following variables in your `env` or your `.env` file:
- ZOOM_ACCOUNT_ID
- ZOOM_CLIENT_ID
- ZOOM_CLIENT_SECRET
### Initialize the ZoomApiClient from environment variables
```python
from zoom_python_client.zoom_api_client import ZoomApiClient
zoom_client = ZoomApiClient.init_from_env()
```
### Initialize the ZoomApiClient from .env
```python
from zoom_python_client.zoom_api_client import ZoomApiClient
zoom_client = ZoomApiClient.init_from_dotenv()
```
### Initialize the ZoomApiClient manually
```python
from zoom_python_client.zoom_api_client import ZoomApiClient
zoom_client = ZoomApiClient(
account_id="<YOUR ACCOUNT ID>",
client_id="<YOUR CLIENT ID>",
client_secret="<YOUR CLIENT SECRET>")
```
### Use the file system to store the access token instead of environment
There are some cases where you might want to store the access token in the file system in order to share its value with other elements of the application (Ex. different pods on a Kubernetes/Openshift application).
You can define the path where the token will be stored, passing the `use_path` variable to the constructor:
```python
from zoom_python_client.zoom_api_client import ZoomApiClient
zoom_client = ZoomApiClient(
account_id="<YOUR ACCOUNT ID>",
client_id="<YOUR CLIENT ID>",
client_secret="<YOUR CLIENT SECRET>",
use_path="/path/to/token/folder")
```
## How to make API calls
```python
MEETING_ID = "12345"
USER_ID = "abcdfgh"
result = zoom_client.users.get_user(USER_ID)
print(result)
result = zoom_client.meetings.get_meeting(MEETING_ID)
print(result)
```
## Optional: How to configure the logging
```python
from zoom_python_client.utils.logger import setup_logs
setup_logs(log_level=logging.DEBUG)
```
## Available endpoints
### **users**:
1. get user details
2. get user meetings
### **meetings**:
1. get meeting details
2. get meeting token
### **meeting live streams**:
1. get meeting live stream
2. update live stream
3. update livestream status
### **webinars**:
1. get webinar details
### **webinar live streams**:
1. get webinar live stream
2. update webinar live stream
3. update webinar livestream status
### **zoom rooms**:
1. get all zoom rooms
2. get zoom room details
3. get zoom room sensor data
### **calendars**:
1. get calendar services list
2. get calendar resources list
3. get calendar resources by service id list
4. get calendar resource details by id
Raw data
{
"_id": null,
"home_page": "https://github.com/cern-vc/zoom-python-client",
"name": "zoom-python-client",
"maintainer": "Rene Fernandez Sanchez",
"docs_url": null,
"requires_python": ">=3.9,<4.0",
"maintainer_email": "rene.fernandez@cern.ch",
"keywords": "zoom,api",
"author": "Rene Fernandez Sanchez",
"author_email": "rene.fernandez@cern.ch",
"download_url": "https://files.pythonhosted.org/packages/13/c2/2a75fb7dd189234b1e3545414d2db5c19c1ba6787de365dab7e8730bb6d6/zoom_python_client-0.2.2.tar.gz",
"platform": null,
"description": "# Zoom Python client\n\n[![Python tests](https://github.com/cern-vc/zoom-python-client/actions/workflows/python-tests.yml/badge.svg)](https://github.com/cern-vc/zoom-python-client/actions/workflows/python-tests.yml) [![pre-commit](https://github.com/cern-vc/zoom-python-client/actions/workflows/pre-commit.yaml/badge.svg)](https://github.com/cern-vc/zoom-python-client/actions/workflows/pre-commit.yaml) [![CodeQL](https://github.com/cern-vc/zoom-python-client/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/cern-vc/zoom-python-client/actions/workflows/codeql-analysis.yml) [![codecov](https://codecov.io/gh/cern-vc/zoom-python-client/branch/main/graph/badge.svg?token=04EY0K0P2S)](https://codecov.io/gh/cern-vc/zoom-python-client)\n\nZoom API Python client with support for [Server to Server Oauth tokens](https://developers.zoom.us/docs/internal-apps/s2s-oauth/)\n\n## Install\n\nThis package is [available on Pypi](https://pypi.org/project/zoom-python-client/)\n\n```bash\npip install zoom-python-client\n```\n\n## Requirements\n\n- Python >= 3.9\n\n## Usage\n\n### Defining your env variables\n\nDefine the following variables in your `env` or your `.env` file:\n\n- ZOOM_ACCOUNT_ID\n- ZOOM_CLIENT_ID\n- ZOOM_CLIENT_SECRET\n\n### Initialize the ZoomApiClient from environment variables\n\n```python\nfrom zoom_python_client.zoom_api_client import ZoomApiClient\n\nzoom_client = ZoomApiClient.init_from_env()\n```\n\n### Initialize the ZoomApiClient from .env\n\n```python\nfrom zoom_python_client.zoom_api_client import ZoomApiClient\n\nzoom_client = ZoomApiClient.init_from_dotenv()\n```\n\n### Initialize the ZoomApiClient manually\n\n```python\nfrom zoom_python_client.zoom_api_client import ZoomApiClient\n\nzoom_client = ZoomApiClient(\n account_id=\"<YOUR ACCOUNT ID>\",\n client_id=\"<YOUR CLIENT ID>\",\n client_secret=\"<YOUR CLIENT SECRET>\")\n```\n\n### Use the file system to store the access token instead of environment\n\nThere are some cases where you might want to store the access token in the file system in order to share its value with other elements of the application (Ex. different pods on a Kubernetes/Openshift application).\n\nYou can define the path where the token will be stored, passing the `use_path` variable to the constructor:\n\n```python\nfrom zoom_python_client.zoom_api_client import ZoomApiClient\n\nzoom_client = ZoomApiClient(\n account_id=\"<YOUR ACCOUNT ID>\",\n client_id=\"<YOUR CLIENT ID>\",\n client_secret=\"<YOUR CLIENT SECRET>\",\n use_path=\"/path/to/token/folder\")\n```\n\n## How to make API calls\n\n```python\nMEETING_ID = \"12345\"\nUSER_ID = \"abcdfgh\"\n\nresult = zoom_client.users.get_user(USER_ID)\nprint(result)\n\nresult = zoom_client.meetings.get_meeting(MEETING_ID)\nprint(result)\n```\n\n## Optional: How to configure the logging\n\n```python\nfrom zoom_python_client.utils.logger import setup_logs\n\nsetup_logs(log_level=logging.DEBUG)\n```\n\n## Available endpoints\n\n### **users**:\n\n1. get user details\n2. get user meetings\n\n### **meetings**:\n\n1. get meeting details\n2. get meeting token\n\n### **meeting live streams**:\n\n1. get meeting live stream\n2. update live stream\n3. update livestream status\n\n### **webinars**:\n\n1. get webinar details\n\n### **webinar live streams**:\n\n1. get webinar live stream\n2. update webinar live stream\n3. update webinar livestream status\n\n### **zoom rooms**:\n\n1. get all zoom rooms\n2. get zoom room details\n3. get zoom room sensor data\n\n### **calendars**:\n\n1. get calendar services list\n2. get calendar resources list\n3. get calendar resources by service id list\n4. get calendar resource details by id\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Zoom API client for Python using server to server tokens",
"version": "0.2.2",
"project_urls": {
"Bug Tracker": "https://github.com/cern-vc/zoom-python-client/issues",
"Homepage": "https://github.com/cern-vc/zoom-python-client",
"Repository": "https://github.com/cern-vc/zoom-python-client"
},
"split_keywords": [
"zoom",
"api"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "420a99a6078b91f046e5680d66f4abe9b7e0f40bcc555b5f49370566c762f13e",
"md5": "d3845ace069f264c4af2bfbf6897ceaf",
"sha256": "733fc23d011c463e557f30bcae37c6b7339623c50a0a9864b30d8b1de10e0358"
},
"downloads": -1,
"filename": "zoom_python_client-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d3845ace069f264c4af2bfbf6897ceaf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9,<4.0",
"size": 16684,
"upload_time": "2023-08-30T12:27:11",
"upload_time_iso_8601": "2023-08-30T12:27:11.544860Z",
"url": "https://files.pythonhosted.org/packages/42/0a/99a6078b91f046e5680d66f4abe9b7e0f40bcc555b5f49370566c762f13e/zoom_python_client-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "13c22a75fb7dd189234b1e3545414d2db5c19c1ba6787de365dab7e8730bb6d6",
"md5": "e94acb726ffed1736091f908ead67453",
"sha256": "87f690cee50ee4333c582db197a32263bf2fa411f70fdccd85b6208407328752"
},
"downloads": -1,
"filename": "zoom_python_client-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "e94acb726ffed1736091f908ead67453",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9,<4.0",
"size": 10350,
"upload_time": "2023-08-30T12:27:13",
"upload_time_iso_8601": "2023-08-30T12:27:13.096701Z",
"url": "https://files.pythonhosted.org/packages/13/c2/2a75fb7dd189234b1e3545414d2db5c19c1ba6787de365dab7e8730bb6d6/zoom_python_client-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-30 12:27:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "cern-vc",
"github_project": "zoom-python-client",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"lcname": "zoom-python-client"
}