与 Zoom API v2 交互的实用程序
项目描述
缩放 API 助手
与Zoom API v2交互的实用程序
免费软件:麻省理工学院许可证
文档:https ://zoom-api-helper.readthedocs.io 。
安装
Zoom API Helper 库在 PyPI上可用,并且可以使用pip安装:
$ pip install zoom-api-helper
您还需要创建一个服务器到服务器 OAuth 应用程序,如文档中所述。
特征
Zoom API v2:列出用户、创建会议和批量创建会议。
支持服务器到服务器 OAuth流。
从 OAuth 进程检索的访问令牌的本地缓存。
快速开始
首先创建一个助手客户端 ( ZoomAPI ) 以与 Zoom API 交互:
>>> from zoom_api_helper import ZoomAPI
>>> zoom = ZoomAPI('<CLIENT ID>', '<CLIENT SECRET>',
... # can also be specified via `ZOOM_ACCOUNT_ID` env variable
... account_id='<ACCOUNT ID>')
通过ZoomAPI.list_users()检索用户列表:
>>> zoom.list_users()
{'page_count': 3, 'page_number': 1, 'page_size': 300, 'total_records': 700, 'users': [{'id': '-abc123', 'first_name': 'Jon', 'last_name': 'Doe', 'email': 'jdoe@email.org', 'timezone': 'America/New_York', ...}, ...]}
或者,每个 Zoom 用户的电子邮件到用户 ID的映射:
>>> zoom.user_email_to_id(use_cache=True)
{'jdoe@email.org': '-abc123', 'dsimms@email2.org': '-xyz321', ...}
通过ZoomAPI.create_meeting()创建单独的会议:
>>> zoom.create_meeting(topic='My Awesome Meeting')
{'uuid': 'T9SwnVWzQB2dD1zFQ7PxFA==', 'id': 91894643201, 'host_id': '...', 'host_email': 'me@email.org', 'topic': 'My Awesome Meeting', 'type': 2, ...}
要以并发方式批量创建会议列表,请参阅下面的批量创建会议部分。
本地存储
该库使用本地存储来进行缓存,默认情况下位于~/.zoom/cache的用户主目录下 - 尽管可以通过CACHE_DIR环境变量自定义此位置。
包含缓存数据的文件名的格式类似于以下内容:
{{ Purpose }}_{{ Zoom Account ID }}_{{ Zoom Client ID }}.json
目前,帮助程序库使用本地文件缓存有两个目的:
存储从OAuth 步骤检索到的访问令牌,以便只需要在~1 小时后刷新令牌。
存储 Zoom 用户电子邮件到用户 ID 的缓存映射,因为通常 Zoom API 只需要用户 ID。
否则,从 API 检索此映射有时会很昂贵,尤其是对于拥有大量用户 (1000+) 的 Zoom 帐户。
批量创建会议
为了批量创建会议——例如,如果您需要在短时间内创建 100 多个会议——使用ZoomAPI的bulk_create_meetings() 方法。
这允许您传入包含要创建的会议的 Excel ( .xlsx ) 文件,或者直接传入包含会议信息的行。
例子
假设您有一个包含以下数据的 Excel 文件 ( meeting-info.xlsx ):
团队名字 |
缩放用户名 |
话题 |
会议日期 |
会议时间 |
持续时间小时 |
持续时间最短 |
会议网址 |
会议编号 |
密码 |
|---|---|---|---|---|---|---|---|---|---|
A-BC:TEST:样品组 1 |
测试会议#1:只是一个例子 |
25 年 10 月 26 日 |
下午 3:30 |
1 |
30 |
||||
A-BC:TEST:样品组 2 |
测试会议#2:这是另一个 |
25 年 11 月 27 日 |
下午7时00 |
1 |
0 |
||||
A-BC:TEST:样品组 3 |
测试会议#3:这是现在的最后一次 |
25 年 9 月 29 日 |
9:00 PM |
1 |
15 |
然后,这是一个示例代码,可让您在 Zoom 帐户中批量创建指定的会议。
注意:根据需要替换下面的<CLIENT ID>等凭据。
from datetime import datetime
from zoom_api_helper import ZoomAPI
from zoom_api_helper.models import *
def main():
zoom = ZoomAPI('<CLIENT ID>', '<CLIENT SECRET>', '<ACCOUNT ID>')
# (optional) column header to keyword argument
col_name_to_kwarg = {'Group Name': 'agenda',
'Zoom Username': 'host_email'}
# (optional) predicate function to initially process the row data
def process_row(row: 'RowType', dt_format='%Y-%m-%d %I:%M %p'):
start_time = f"{row['Meeting Date'][:10]} {row['Meeting Time']}"
row.update(
start_time=datetime.strptime(start_time, dt_format),
# Zoom expects the `duration` value in minutes.
duration=int(row['Duration Hr']) * 60 + int(row['Duration Min']),
)
return True
# (optional) function to update row(s) with the API response
def update_row(row: 'RowType', resp: dict):
row['Meeting URL'] = resp['join_url']
row['Meeting ID'] = resp['id']
row['Passcode'] = resp['password']
# create meetings with dry run enabled.
zoom.bulk_create_meetings(
col_name_to_kwarg,
excel_file='./meeting-info.xlsx',
default_timezone='America/New_York',
process_row=process_row,
update_row=update_row,
# comment out below line to actually create the meetings.
dry_run=True,
)
if __name__ == '__main__':
main()
学分
这个包是用Cookiecutter和rnag/cookiecutter-pypackage项目模板创建的。
历史
0.1.1 (2022-09-07)
更新文档。
0.1.0 (2022-09-06)
PyPI 上的第一个版本。
项目详情
zoom_api_helper -0.1.1-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 98699a9e9a5b594e23bf06ecccab495903e62bd297416e7b19f2e9f8891a2d47 |
|
| MD5 | 2732e982e063f0d346c0128403d6af4e |
|
| 布莱克2-256 | 008425b4a730b60e8d67a686258885495b6212dcfdf8a6d904c83a1d2b7999cf |