如何在Zoom中集成自己的app?一个简单的例子

一、注册zoom 账号、以便在zoom app maketplace创建app。

二、安装git、node.js、vscode开发环境(略)。

三、注册ngrok账号,获得一个免费的https静态域名。

四、配置zoom app(wxl),设置上一步获得的https静态域名,验证地址为/auth

五、事件订阅(会议开始和会议结束,也可以订阅其它事件)

六、选择在哪些界面使用app(wxl)、设置主页和允许访问的域名。

七、设置访问范围

八、生成共享app(wxl)的链接

九、开始开发过程(power shell)

1、git clone https://github.com/zoom/zoomapps-sample-js

2、cd zoomapps-sample-js

3、npm install

4、配置.env(参数来源创建app的过程,SESSION_SECRET为随机初始化值)

5、在app.js文件的95行-149行增加/webhook的处理(接收会议开始和结束事情的订阅信息)

app.post('/webhook', (req, res) => {var responseconsole.log(req.headers)console.log(req.body)// construct the message stringconst message = `v0:${req.headers['x-zm-request-timestamp']}:${JSON.stringify(req.body)}`const hashForVerify = crypto.createHmac('sha256', secretToken).update(message).digest('hex')// hash the message string with your Webhook Secret Token and prepend the version semanticconst signature = `v0=${hashForVerify}`// you validating the request came from Zoom https://marketplace.zoom.us/docs/api-reference/webhook-reference#notification-structureif (req.headers['x-zm-signature'] === signature) {// Zoom validating you control the webhook endpoint https://marketplace.zoom.us/docs/api-reference/webhook-reference#validate-webhook-endpointif(req.body.event === 'endpoint.url_validation') {const hashForValidate = crypto.createHmac('sha256', secretToken).update(req.body.payload.plainToken).digest('hex')response = {message: {plainToken: req.body.payload.plainToken,encryptedToken: hashForValidate},status: 200}console.log(response.message)res.status(response.status)res.json(response.message)} else {response = { message: 'Authorized request to Zoom Webhook sample.', status: 200 }console.log(response.message)res.status(response.status)res.json(response)// business logic here, example make API request to Zoom or 3rd party}} else {response = { message: 'Unauthorized request to Zoom Webhook sample.', status: 401 }console.log(response.message)res.status(response.status)res.json(response)}})

6、npm start dev

7、ngrok http --domain=shortly-adapted-akita.ngrok-free.app 3000  

8、访问静态域名

9、点击click here 安装app到zoom中

10、允许后

11、打开zoom应用,app(wxl)显示就在zoom窗口中了。

12、点击开始视频会议,获得开始会议事件的订阅信息

13、点击结束会议,获得结束会议事件订阅信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/393581.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进阶学习-----练习线程思维解决实际问题

线程在IT行业的实际应用 1. 多线程编程 在软件开发中,多线程编程是一种常见的技术,它允许程序同时执行多个任务。以下是多线程编程的一些具体应用: 任务分解:将一个大的任务分解为多个小任务,每个小任务由一个线程执…

C#基础——泛型

泛型 C# 中的泛型是一种强大的编程特性,它允许你编写类型安全且灵活的代码。泛型允许你定义类、结构体、接口、方法和委托,而不必在编译时指定具体的数据类型。相反,你可以使用类型参数来定义泛型类型或方法,然后在使用时指定具体…

springboot高校实验室安全管理系统-计算机毕业设计源码73839

目 录 摘要 1 绪论 1.1 研究背景 1.2 选题意义 1.3研究方案 1.4论文章节安排 2相关技术介绍 2.1 B/S结构 2.2 Spring Boot框架 2.3 Java语言 2.4 MySQL数据库 3系统分析 3.1 可行性分析 3.2 系统功能性分析 3.3.非功能性分析 3.4 系统用例分析 3.5系统流程分析…

算法板子:最短路问题——包含朴素Dijkstra算法、堆优化版的Dijkstra算法、SPFA算法、Floyd算法

目录 1. 几种算法的用途2. Dijkstra算法——求源点到其他所有点的最短路径(不能处理负边权)(1)朴素Dijkstra算法——适用于稠密图(2)堆优化版的Dijkstra算法——适用于稀疏图 4. SPFA算法——求源点到其他所有点的最短路径、判断是…

WordPress原创插件:disable-gutenberg禁用古腾堡编辑器和小工具

WordPress原创插件:disable-gutenberg禁用古腾堡编辑器和小工具 disable-gutenberg插件下载:https://download.csdn.net/download/huayula/89616495

SpringBoot快速学习

目录 SpringBoot配置文件 多环境配置 SpringBoot整合junit SpringBoot整合mybatis 1.在创建时勾选需要的模块 2.定义实体类 3.定义dao接口 4.编写数据库配置 5.使用Druid数据源 SpringBoot 是对 Spring 开发进行简化的。 那我们先来看看SpringMVC开发中的一些必须流…

翻译: 梯度下降 深度学习神经网络如何学习一

在上一节影片里我讲解了神经网络的结构 首先我们来快速回顾一下 在本节影片里,我们有两个目标 首介绍梯度下降的概念 它不仅是神经网络工作的基础 也是很多其他机器学习方法的基础 然后我们会研究一下这个特别的网络是如何工作的 以及这些隐藏的神经元层究竟在寻找什…

使用Openvino部署C++的Yolov5时类别信息混乱问题记录

使用Openvino部署C的Yolov5时类别信息混乱问题记录 简单记录一下。 一、问题描述 问题描述:在使用Yolov5的onnx格式模型进行C的Openvino进行模型部署时,通过读取classes.txt获得类别信息时,出现模型类别混乱,或者说根本就不给图…

如何将avi格式转换为flv格式呢?

FLV是随着FLASH MX的推出发展而来的一种视频格式,目前被众多新一代视频分享网站所采用,是目前增长较快,也较为广泛的视频传播格式。 FLV格式可以轻松导入FLASH播放器中,另外它还能起到保护版权的作用,非常受欢迎。那么…

在优化微信、支付宝小程序用户体验时有哪些关键指标

在优化小程序用户体验时,有几个关键指标需要特别关注,这些指标不仅能够帮助评估当前的用户体验状况,还能为后续的优化工作提供明确的方向。以下是一些关键指标及其解释: 1. 日活跃用户(DAU) 是指每天使用…

『 Linux 』网络基础

文章目录 协议分层OSI 七层模型TCP/IP 四层(五层)模型网络协议栈与操作系统的联系报文TCP/IP 通讯过程以太网通信的过程以太网的数据碰撞 协议分层 协议分层是计算机网络中奖网络协议进行组织和管理的方法; 通过将网络通信过程分成多个层次,每个层次负责特定的功能从而简化网络…

触屏交互设备的安全风险

现实中的绝大多数电子设备都具有交互性,而现在越来越多的公共场合有布置越来越多的带触屏的交互设备,功能有简单的,有复杂的,布置的场所和应用的场合也各有不同,几乎在任何一个大型公共场合都可以看到这样的设备&#…

【算法 03】雇佣问题

“雇用问题”及其算法优化 在日常生活和工作中,我们经常会遇到需要从多个选项中做出选择的情况,而“雇用问题”正是这样一个典型的例子。在这个问题中,我们不仅要考虑如何高效地找到最佳候选人,还要关注整个过程中的成本。今天&a…

提高工作效率: AWS Gen AI 在几秒钟内总结会议记录

欢迎来到雲闪世界。全面介绍如何利用 AWS Lambda、Bedrock 和 S3 创建总结会议记录的工作流程 免责声明:本文中使用的会议记录纯属虚构,仅用于作为本文说明和教育目的。它并不反映任何实际的对话、事件或个人。任何与实际人物或事件的相似之处纯属巧合。…

为什么网站要使用HTTPS访问

网站使用HTTPS访问的原因有很多,主要可以归纳为以下几个关键点: 1、数据安全性:HTTPS使用SSL/TLS协议对通信过程进行加密,确保信息在传输过程中不被窃取、篡改或冒充。对于涉及敏感信息(如个人身份、信用卡号等&#x…

数字人解决方案——音频驱动机器人

音频集成 机器人 标志着 人工智能(AI)。 想象一下,机器人可以通过视觉和听觉导航并与周围环境互动。音频驱动的机器人使这成为可能,提高了它们更高效、更直观地执行任务的能力。这一发展可能会影响到各个领域,包括家庭…

github技巧和bug解决方法短篇收集

有一些几句话就可以说明白的观点或者解决的的问题,小虎单独收集到这里。 Commits没有算入每天的activity fork的仓库是不算的。 Commits made in a fork will not count toward your contributions. 参考: Contribution activity not shown for github…

鸿蒙HarmonyOS开发:如何使用第三方库,加速应用开发

文章目录 一、如何安装 ohpm-cli二、如何安装三方库1、在 oh-package.json5 文件中声明三方库,以 ohos/crypto-js 为例:2、安装指定名称 pacakge_name 的三方库,执行以下命令,将自动在当前目录下的 oh-package.json5 文件中自动添…

C# 中引用类型的探讨

引用类型的变量不直接包含其数据;它包含对其数据的引用。 如果按值传递引用类型参数,则可能更改属于所引 用对象的数据,例如类成员的值。 但是,不能更改引用本身的值;例如,不能使用相同引用为新对象分配内存…

QuanTide-weekly第1期

本周Po文 这周我们共发表5篇文章。《基于 XGBoost 的组合策略…》等两篇详细讲解了机器学习构建组合策略的框架和常见问题。 文章要点与结论: 通过两阶段式方案实现多因子、多资产的组合策略构建。第一阶段基于XGBoost构建多个多因子单标的模型,第二阶…