20 开发指南
20 开发指南
文档版本 01
发布日期 2022-02-24
版权所有 © 华为技术有限公司 2022。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
华为技术有限公司
地址: 深圳市龙岗区坂田华为总部办公楼 邮编:518129 网址:
https://www.huawei.com
客户服务邮箱:
[email protected]
客户服务电话:4008302118目 录
1 开放性简介... 1
2 集成华为云会议帐号... 6
3 App ID 鉴权介绍... 9
4 开发流程...17
5 最佳实践...26
6 注意事项...31
7 提交问题工单...32
8 开发者论坛...35
20 开发指南 目 录
1 开放性简介
华为云会议的开放能力
华为云会议提供服务端开放和客户端开放,开发者可以根据业务的需要使用对应的接 口集成开发。
● 服务端集成:华为云会议提供服务端REST接口开放,包括企业管理、用户管理、
通讯录管理、会议管理、会议控制、仪表盘、网络研讨会管理等能力。第三方业 务系统(包括业务后台或者终端App)可以调用相关接口实现自己的业务逻辑。
● 客户端SDK集成:华为云会议提供了客户端SDK开放,开发者可以在自己开发的 App上集成华为云会议的视频会议能力,实现创会、入会、会控等功能。SDK中已 经集成了入会后的UI,第三方App只需调用少量接口就可以在自己的App中集成华 为云会议的视频能力。
● 客户端Scheme应用集成:华为云会议客户端提供URL Protocol定义好的参数,第 三方应用(包括Web页面或者终端App)可以直接拉起华为云会议客户端并且入 会。
20 开发指南 1 开放性简介
图1-1 华为云会议开放性介绍
表1-1 华为云会议开放性能力
开放能力分类 开放能力 开放能力详情
服务端开放能力 企业管理 ● SP管理员增、删、改、查企业
● SP管理员管理企业资源 用户管理 ● 部门增、删、改、查
● 用户增、删、改、查
● 用户密码管理
● 企业通讯录查询
云会议室管理 ● 云会议室分配、修改、回收、查询 硬终端管理 ● 硬终端激活、查询、删除
会议管理 ● 会议/周期性会议创建、修改、查询
● 历史会议查询
会议控制 ● 会中对与会人邀请、挂断、静音等
● 会中对多画面设置
20 开发指南 1 开放性简介
开放能力分类 开放能力 开放能力详情 会议信息推送 单会议状态推送:
● 与会者状态推送
● 最大发言方推送
● 会议质量推送
● 实时字幕推送
● 会议状态推送
企业级会议状态推送:
● 会议开始状态
● 会议结束状态
● 会议关闭状态 仪表盘 ● 会议QoS查询
● 会议统计 信息窗管理 ● 信息窗发布管理
● 信息窗节目管理
● 信息窗素材管理 客户端UI SDK开
放能力 Android UI SDK ● 创建会议、加入会议、匿名入会
● 预约会议、编辑会议、取消会议、获取 会议详情、会议VMR列表
● 点对点呼叫
iOS UI SDK ● 创建会议、加入会议、匿名入会
● 预约会议
● 点对点呼叫
Windows UI SDK ● 创建会议、加入会议、匿名入会
● 预约会议、编辑会议、取消会议、获取 会议详情、会议VMR列表
● 点对点呼叫
Mac UI SDK ● 创建会议、加入会议、匿名入会
● 预约会议、编辑会议、取消会议、获取 会议详情、会议VMR列表
● 点对点呼叫 客户端Scheme
开放能力
华为云会议
Android App ● 拉起App
● 拉起App并加入会议 华为云会议iOS
App ● 拉起App
● 拉起App并加入会议
20 开发指南 1 开放性简介
开放能力分类 开放能力 开放能力详情 华为云会议
Windows客户端 ● 拉起App
● 拉起App并加入会议 华为云会议Mac客
户端 ● 拉起App
● 拉起App并加入会议
集成场景 1:第三方系统预约会议,并拉起华为云会议客户端加入会议
第三方应用可以调用华为服务端的REST API预约会议,并且在页面上加入跳转到拉起 华为云会议客户端的URL,实现点击入会的效果。
该场景适用于第三方需要在自己的业务系统中管理和调度会议,并且允许用户使用华 为标准客户端参加会议。
图1-2 终端 Scheme 应用集成
REST API的详细介绍参考《服务端API参考》。拉起会议客户端的URL的详细介绍参考
《终端Scheme应用集成》。
集成场景 2:第三方 APP 通过 UI SDK 集成,快速集成会议客户端能力
第三方应用有自己的App,通过在App上调用会议客户端UI SDK接口,快速集成会议 功能。只需要在客户的App上开发对应的入口并调用对应的接口预约会议、创建会 议、加入会议,入会后的会控操作都是SDK提供的界面,无需新开发。
20 开发指南 1 开放性简介
图1-3 第三方 App 基于终端 UI SDK 集成场景
上图中①②③的界面都在同一个App中,其中①②是第三方自己的App界面,③是SDK 提供的界面。SDK的详细介绍参考《客户端SDK参考》。
20 开发指南 1 开放性简介
2 集成华为云会议帐号
华为云会议系统涉及两类帐号:华为云帐号和华为云会议帐号。华为云会议帐号按角 色分类又可以分成四种:SP管理员帐号,企业管理员帐号,企业普通用户帐号和个人 帐号。
● 华为云账号:用于购买会议服务;登录华为云控制台;申请App ID;用于登录API Explorer进行调试。
● 华为云会议帐号:
– SP管理员帐号:用于企业管理、企业资源管理。
– 企业管理员帐号:用于企业内部部门管理、用户管理、VMR管理、会管、会 控。
– 企业普通用户帐号:用于用户本身的会管、会控。
– 个人帐号:不属于任何企业的帐号,权限跟企业普通用户帐号相同。
华为云会议提供两种帐号集成方式与第三方应用集成:App ID鉴权方式;帐号/密码鉴 权方式。
说明
● 华为云会议帐号区分为个人帐号和企业帐号。个人帐号创建企业/组织后就成为了企业帐号。
二次开发中使用的都是企业帐号。
● 华为云账号只有绑定了华为云会议企业管理员帐号后,才能申请App ID。申请企业管理员帐 号请参考“开发前准备”。App ID的申请请参考“App ID的申请”。
20 开发指南 2 集成华为云会议帐号
App ID 鉴权方式(推荐)
图2-1 App ID 鉴权方式集成
步骤1 预先创建好App ID,一个应用只需创建一次,请参考“App ID的申请”。
步骤2 使用App ID和第三方User ID,调用鉴权接口获取接入token。
步骤3 调用其他需指定用户的管理接口(比如邀请与会者)时带上接入Token,以及第三方 User ID。
----结束
这种鉴权模式下第三方应用不感知华为云会议帐号。第三方User ID和华为云会议帐号 的绑定关系在华为云会议系统中维护。
帐号/密码鉴权方式(不推荐)
图2-2 帐号/密码鉴权方式集成
步骤1 使用帐号/密码鉴权方式与华为云会议帐号集成时,需要调用服务端的REST API创建用 户帐号,并且在第三方系统中维护第三方的user id和华为云会议帐号的绑定关系。
20 开发指南 2 集成华为云会议帐号
步骤2 使用已经发放好的华为云会议帐号和密码,调用鉴权接口获取接入Token。
步骤3 调用其他需指定用户的管理接口(比如邀请与会者)时带上接入Token,以及华为云会 议帐号(account)。
----结束
这种鉴权模式下,第三方系统需要为第三方User ID绑定华为云会议用户帐号,第三方 User ID和华为云会议用户帐号是1:1映射的。
图2-3 第三方帐号与华为云会议帐号的绑定关系
说明
第三方User ID和华为云会议用户帐号也可以是n:1,但是需要第三方系统自己负责帐号的绑定和 解绑定。
20 开发指南 2 集成华为云会议帐号
3 App ID 鉴权介绍
为了降低第三方应用集成华为云会议难度,并且提升开放接口的安全性,华为云会议 开放能力中支持基于App ID的鉴权方式。App ID是一个应用的标识,同一个App ID可 以同时在第三方的桌面终端、移动终端、Web应用上使用。
App ID 鉴权原理
图3-1 第三方客户端 App ID 鉴权流程
鉴权前提:
20 开发指南 3 App ID 鉴权介绍
1. 开发者在华为云会议控制台上为自己的应用申请AppID,并获取App ID和App Key。
2. 开发者在自己的服务端集成Signature生成算法,请参考“第三方服务集成 Signature生成算法”。
3. SDK初始化时传入App ID,请参考《客户端SDK参考》中的“初始化”部分。
鉴权过程:
1. 第三方客户端将User ID(第三方User ID)发送给第三方服务器。
2. 第三方服务器根据App ID、User ID、App Key等,生成鉴权用的签名材料 Signature。
3. 第三方服务端返回Signature,以及ExpireTime和Nonce值。
4. 第三方客户端调用客户端SDK的Login接口,参数为User ID、Signature、
ExpireTime和Nonce。
5. 客户端SDK去华为云会议服务端鉴权。
6. 鉴权通过后SDK获取接入Token。该Token对第三方客户端不可见,由SDK负责维 护和刷新。
图3-2 第三方服务端 App ID 鉴权流程
鉴权前提:
1. 开发者在华为云会议控制台上为自己的应用申请AppID,并获取App ID和App Key。
2. 开发者在自己的服务端集成Signature生成算法,请参考“第三方服务集成 Signature生成算法”。
鉴权过程:
1. 第三方服务端根据调用的业务接口所需的User ID(第三方User ID),加上App ID、App Key、ExpireTime和Nonce,生成鉴权用的签名材料Signature。
20 开发指南 3 App ID 鉴权介绍
说明
1. 接口Token有效期是12~24小时。
2. 生成Signature和调用appAuth接口时可以不带User ID,如果不带User ID默认是创建企业时 的创建者(企业Owner)。
3. User ID需要第三方应用保证在同一个企业内是唯一的。如果第三方开发者是SP,同一个应用 在多个企业使用,接口中除了带User ID外,还需要带Corp ID(企业ID)
4. 如果需要使用华为云会议通讯录的情况下,在登录鉴权过程中还可以携带邮箱、姓名、电话 号码等信息,这些信息将被写入华为云会议的通讯录中。
App ID 的申请
步骤1 使用华为云账号,登录华为云会议控制台。前提是该华为云账号已经购买了华为云会 议服务或者已经绑定了华为云会议企业管理员帐号,请参考“开发流程”章节中的
“开发前准备”。
步骤2 点击“应用管理”,再点击“申请应用”。在弹出的创建应用的输入框中输入第三方 应用的名称及描述。
图3-3 创建应用
说明
● 请填写真实的联系人姓名和手机号码。
● 申请提交后,华为云会议工作人员会在1~3个工作日内完成审核和审批。
步骤3 生成App Key
审批通过后,点击“生成AppKey”再点击“确定”生成App Key。
20 开发指南 3 App ID 鉴权介绍
图3-4 生成 App Key
----结束
说明
1. App Key是生成鉴权签名材料Signature的密钥,需要在第三方服务端妥善保存,不要泄露出 去,否则会出现被盗用会议资源的风险。
2. App Key只能保存在第三方服务端,不能保存在第三方终端中,否则很容易被反编译获取。
3. App Key需要妥善保存,遗失后只能重置,不能找回。重新生成App Key原来的App Key将会 在一个月后失效。
第三方服务集成 Signature 生成算法
App只在单个企业内使用的情况下,生成鉴权签名材料Signature的算法如下:
Signature = HexEncode(HMAC-SHA256((App ID + ":" + User ID + ":" + ExpireTime + ":" + Nonce), appKey))
App是SP开发的,需要在多个企业内使用的情况下,生成鉴权签名材料Signature的算 法如下:
● 作为企业普通用户,对自己的会议管理:
Signature = HexEncode(HMAC-SHA256((App ID + ":" + CorpID + ":" + User ID + ":" + ExpireTime + ":"
+ Nonce), appKey))
● 作为企业管理员,对企业资源进行管理:
Signature = HexEncode(HMAC-SHA256((App ID + ":" + CorpID + "::" + ExpireTime + ":" + Nonce), appKey))
说明
作为企业管理员是也可以带User ID,这个User ID必选具有管理员权限。
● 作为SP管理员,对SP资源进行管理(如创建企业或者分配企业资源等):
Signature = HexEncode(HMAC-SHA256((App ID + ":::" + ExpireTime + ":" + Nonce), appKey))
算法说明:
1. HMAC-SHA256的输入数据是App ID、CorpID(可选)、User ID(可选)、
ExpireTime、Nonce值,中间用“:”分隔。如
d5e1785afbe44c2588b642446652489e:alice@ent01:1604020600:EycLQsHwxhz K9OW8UEKWNfH2I3CGR2nINuU1EBpQ
20 开发指南 3 App ID 鉴权介绍
3. HMAC-SHA256生成的二进制数需要转换为十六进制字符串(HexEncode),上 述的数据和密钥最终生成的Signature如下:
2a8c780cee3dbfe210384c3f95380732d55dfc81cfa49c5a6c44f3c1b3c2455d 4. ExpireTime:鉴权签名材料Signature的过期时间戳。单位是秒。比如当前的系统
的时间戳是1604020000,Signature有效期设置成10分钟,则ExpireTime = 1604020000+10*60 = 1604020600
5. Nonce:随机字符串,每次计算鉴权签名材料Signature时都必须不同。字符串长 度为32~64字节
说明
1. 由于鉴权签名材料Signature是有有效期的,所以第三方服务端的系统时间和华为云会议服务 端的系统时间误差不能太大(小于ExpireTime中的有效期,如上例中的10分钟)。华为云会议 服务端时间已经跟标准NTP时间同步。
2. ExpireTime为0,表示永远不过期。为了防止重放攻击,不建议将ExpireTime设置为0。
Java版本的Signature生成算法源代码
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public class HmacSHA256 { //十六进制字符集
private final static char[] DIGEST_ARRAYS = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
/**
* 功能:Signature生成算法 * 输入参数:
* 1.data: HMAC-SHA256的输入数据 * 2.key: App Key
* 输出参数:十六进制字符串编码的HMAC-SHA256值 */
public static String encode(String data, String key) { byte[] hashByte;
try {
Mac sha256HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256");
sha256HMAC.init(secretKey);
hashByte = sha256HMAC.doFinal(data.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException | UnsupportedEncodingException | InvalidKeyException e) { return null;
}
return bytesToHex(hashByte);
} /**
* 功能:byte类型数组转换成十六进制字符串 * 输入参数:
* 1.bytes:被转换的字节数组 * 输出参数:十六进制字符串 */
private static String bytesToHex(byte[] bytes) { StringBuffer hexStr = new StringBuffer();
for (int i = 0; i < bytes.length; i++) {
hexStr.append(DIGEST_ARRAYS[bytes[i] >>> 4 & 0X0F]);
hexStr.append(DIGEST_ARRAYS[bytes[i] & 0X0F]);
}
20 开发指南 3 App ID 鉴权介绍
return hexStr.toString();
} }
Python版本的Signature生成算法源代码
import hmac
from hashlib import sha256 class HmacSHA256:
def __init__(self, sig_data, sig_key):
self.data = sig_data self.key = sig_key def encode(self):
try:
sig_data = self.data.encode('utf-8') secret_key = self.key.encode('utf-8')
signature = hmac.new(secret_key, sig_data, digestmod=sha256).hexdigest() except Exception as e:
print (e) raise e return signature
C++版本的Signature生成算法源代码
#include <openssl/hmac.h>
#include <string.h>
#include <iostream>
using namespace std;
const int HMAC_ENCODE_SUCCESS = 0;
const int HMAC_ENCODE_FAIL = -1;
const int HMAC_SHA256_STR_LEN = 65;
/*** 功能: 字节流转换成十六进制字符串
* 输入参数:
* 1.input: 字节流指针
* 2.len: 字节流字节数
* 输出参数:
* 3.output: 输出缓冲区
* 6.output_length: Signature字符串长度
* 返回值:
* 0:失败
* 大于0的整数:转换后的字符串长度
*/int Byte2HexStr(char * output, unsigned char * input, unsigned int len) { if ((NULL == output) || (NULL == input))
{
return 0;
}
unsigned int i = 0;
for (i = 0; i < len; i++) {
sprintf_s(output + 2*i, HMAC_SHA256_STR_LEN-2*i, "%x%x", (input[i] >> 4) & 0x0F, input[i]&0x0F);
}
*(output + 2*i) = '\0';
return 2*i;
20 开发指南 3 App ID 鉴权介绍
* 输入参数:
* 1.key: App Key
* 2.key_length: App Key的字符串长度
* 3.input: HMAC-SHA256的输入数据
* 4.input_length: HMAC-SHA256的输入数据的字符串长度
* 输出参数:
* 5.output: Signature输出缓冲区
* 6.output_length: Signature字符串长度
* 返回值:
* 0:成功
* -1:失败
*/int HmacEncode(const char * key, unsigned int key_length, const char * input, unsigned int input_length,
char output[HMAC_SHA256_STR_LEN], unsigned int &output_length) { //计算HMAC_SHA256的字节流
const EVP_MD * engine = EVP_sha256();
unsigned char * byte_output = (unsigned char*)malloc(EVP_MAX_MD_SIZE);
if (NULL == byte_output) {
output_length = 0;
return HMAC_ENCODE_FAIL;
}
unsigned int byte_output_length = 0;
HMAC_CTX *ctx;
ctx = HMAC_CTX_new();
HMAC_Init(ctx, key, strlen(key), engine);
HMAC_Update(ctx, (unsigned char*)input, strlen(input));
HMAC_Final(ctx, byte_output, &byte_output_length);
HMAC_CTX_free(ctx);
//HMAC_SHA256的字节流转换成十六进制字符串
int ret = Byte2HexStr(output, byte_output, byte_output_length);
free(byte_output);
if (0 == ret) {
output_length = 0;
return HMAC_ENCODE_FAIL;
} else {
output_length = ret;
return HMAC_ENCODE_SUCCESS;
} }
说明
C++的Signature生成算法基于openssl 1.1.0以上版本实现。openssl库需要开发者自己编译和安 装,请参考openssl官网。
JavaScript版本的Signature生成算法源代码
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js"> </script>
<script>
/**
* 1、重要提醒:生成Signature的算法不要放在前端代码中,否则会导致App Key泄露,从而导致企业资源被 盗 * 2、本示例代码仅供调试时使用
*/
function genSignature(data,appKey){
var sign = CryptoJS.HmacSHA256(data,appKey).toString();
20 开发指南 3 App ID 鉴权介绍
return sign }
</script>
集成 UI SDK 的第三方客户端 App ID 鉴权
第三方客户端初始化SDK时,需要传入事先申请好的App ID。
● Android SDK的初始化接口,请参考《客户端SDK参考》中“Android SDK”的
“初始化”章节。
● iOS SDK的初始化接口,请参考《客户端SDK参考》中“iOS SDK”的“初始化”
章节。
● Windows SDK的初始化接口,请参考《客户端SDK参考》中“Windows SDK”的
“初始化”章节。
● Mac SDK的初始化接口,请参考《客户端SDK参考》中“Mac SDK”的“初始
化”章节。
第三方客户端登录时,从第三方服务端获取Signature、ExpireTime和Nonce后,调用 终端SDK的Login接口完成鉴权。
● Android SDK的Login接口,请参考《客户端SDK参考》中“Android SDK”的
“登录”章节。
● iOS SDK的Login接口,请参考《客户端SDK参考》中“iOS SDK”的“登录”章 节。
● Windows SDK的Login接口,请参考《客户端SDK参考》中“Windows SDK”的
“登录”章节。
● Mac SDK的Login接口,请参考《客户端SDK参考》中“Mac SDK”的“登录”章 节。
第三方服务端 App ID 鉴权
第三方服务端通过AppID鉴权接口,完成App ID鉴权,并获取接入Token。请参考《服 务端API参考》中的“执行App ID鉴权”章节。
20 开发指南 3 App ID 鉴权介绍
4 开发流程
图4-1 开发流程
开发前准备
1. 注册华为云账号
登录华为云官网,单击“注册”,按照界面提示完成华为云的注册。成功注册后 请尽快完成“企业实名认证”,认证过程请参考“企业帐号如何完成实名认
证”。
2. 开通华为云会议企业管理员帐号 – 正式商用
订购华为云会议服务。如何订购,请参考如何购买会议套餐。
– 免费试用 说明
自助申请免费注册功能仅在中国站放开了,如果需要在国际站申请免费试用企业请联 系华为销售人员。
a. 用步骤1中申请的华为云账号登录华为云官网后,进入“华为云会议官网”页 面。点击“免费体验”。
20 开发指南 4 开发流程
图4-2 免费体验申请入口
b. 注册华为云会议个人免费帐号。注册成功后点击“立即开始会议”进入华为 云会议的管理后台。
图4-3 注册华为云会议个人免费帐号
图4-4 注册成功
20 开发指南 4 开发流程
c. 用华为云会议个人免费帐号登录华为云会议的管理后台,就可以创建企业。
图4-5 创建企业
图4-6 填写企业信息(注:请填写真实的企业名称)
说明
● 如果不填写企业真实名称,下面的“POC测试申请”将会被驳回。
● 被驳回后,请在华为云会议管理平台上“管理员>企业管理>注册信息”中修改企 业名称,并重新提交POC测试申请。
20 开发指南 4 开发流程
图4-7 企业创建成功
d. 华为云账号上绑定华为云会议企业管理员帐号。在“华为云会议官网”上,
点击“进入管理后台”,再点击“立即绑定”,并输入上述a~c步骤中申请到 的华为云会议企业管理员帐号和密码。
图4-8 进入管理后台
图4-9 绑定华为云会议企业管理员帐号
20 开发指南 4 开发流程
图4-10 华为云会议企业管理员信息
e. 步骤d绑定成功后,在同一界面可申请免费POC资源。点击“POC测试申 请”,请如实填写申请信息并提交,我们将会在10个工作日内进行审核。审 批通过后,即可开始华为云会议体验之旅。
图4-11 填写 POC 测试申请信息
图4-12 POC 测试申请进展
20 开发指南 4 开发流程
图4-13 POC 测试资源清单
说明
1. 个人免费帐号资源:赠送1个50方的云会议室(VMR);单个会议最大时长45分钟。
2. 企业免费帐号资源:升级为企业后,企业内所有成员(包括被邀请用户)均可免费获得 1个专属50方的云会议室(VMR)资源;支持每个成员使用自己的50方云会议室创建会 议,单个会议最大时长均为45分钟。
3. POC测试资源:申请后,企业可免费获得为期180天的云会议体验套餐(包含25方并 发、1个50方会议室、网络研讨会资源、录播空间、硬件接入许可等资源);单个会议 最大时长不受限制。
4. 二次开发一定要升级为企业帐号,并申请POC测试资源,不能使用个人帐号。
5. 如有紧急问题请拨打4000-955-988 | 950808 按1转1进行快速解答。
3. 添加其他帐号(可选)。
在华为云会议官网单击“进入管理后台”,输入华为云账号和密码,单击“进入 管理后台”。
图4-14 登录华为云会议管理后台
登录后,在左侧菜单栏中选择“管理员>企业管理 > 会议用户”,邀请会议用 户。被邀请者同意后,成为新的企业会议用户。
20 开发指南 4 开发流程
图4-15 邀请华为云会议用户
普通的会议用户可以通过“管理员>企业管理 > 管理员”,添加为该企业的企业 管理员。
图4-16 添加管理员
4. 申请App ID
App ID鉴权的介绍和申请请参考“3 App ID鉴权介绍”。
集成服务端 REST API
1. 下载服务端集成开发工具以及二次开发文档。
20 开发指南 4 开发流程
在集成开发服务端API的过程中,除本开发指南外,开发者还需要参考《服务端 API参考》。
2. 准备开发环境。
订购华为云会议服务,基于业务账号调用服务端API,接入地址是“中国站:
https://api.meeting.huaweicloud.com;国际站:https://api- intl.meeting.huaweicloud.com”。
3. 集成登录鉴权。
第三方系统在直接调用云会议功能前,需要先调用鉴权接口,完成第三方应用帐 号向会议服务端的鉴权。详细开发方法参见《服务端API参考》中的“登录鉴权”
章节。
图4-17 服务端鉴权集成
4. 调用REST接口集成开发。
在完成鉴权调用后,开发者可以在第三方应用系统上集成华为云会议的服务端功 能接口。
详细开发方法参见《服务端API参考》。
5. 功能调试。
开发完成后,可以接入华为云会议调试环境(中国站:https://
api.meeting.huaweicloud.com;国际站:https://api- intl.meeting.huaweicloud.com)进行功能调试。
华为云会议提供的每个服务端REST API都可以在华为云的API Explorer上调试。
说明
华为云会议服务端的REST API在第三方的终端App上也可以调用。终端App调用时,终端 类型(clientType)需要设置成“Web客户端类型”,否则会把已经登录的App踢下线。
集成客户端 UI SDK
1. 下载客户端SDK开发包以及二次开发文档。
在集成开发客户端SDK的过程中,除本开发指南外,开发者还需要查看本《客户
端SDK参考》。
请参考《客户端SDK参考》中的“资源下载”获取SDK开发包,Demo源代码在 SDK包中。
20 开发指南 4 开发流程
请参考《客户端SDK参考》中每个平台SDK下的“Demo安装包下载”试用 Demo。
3. 准备开发环境。
– 开发环境准备
▪
不同平台的开发工具及环境要求。详见《客户端SDK参考》中对应平台 下的“快速入门”。– 调测环境准备
订购华为云会议服务后或者申请免费试用帐号后,调用客户端SDK。
4. 调用SDK集成开发。
开发者可以在自己对应要开发的平台上集成华为云会议对应平台的SDK接口。
详细开发方法参见《客户端SDK参考》。
5. 功能调试。
开发完成后,可以接入华为云会议调试环境进行功能调试。
商用发布
开发者完成应用开发和调测后将应用发布给最终用户使用。
20 开发指南 4 开发流程
5 最佳实践
开放性应用实践概览
华为云会议提供了服务端API开放和客户端SDK开放,开发者基于自己的应用场景可以 灵活地集成华为云会议的开放性接口。本文介绍了几个基于华为云会议集成的最佳实 践,帮助开发者了解几种典型场景下的集成方案,以管窥豹,快速掌握基于华为云会 议的集成开发能力。
图5-1 开放性应用实践概览
20 开发指南 5 最佳实践
表5-1 服务端 API 集成实践
实践 应用场景
实践1:鉴权登录 服务端API调用前需要鉴权登录后获取接入Token,开放者通 过App ID鉴权接口完成鉴权登录,并获取接入Token。
实践2:创建会议 服务端创建会议:用户已有的管理系统可集成华为会议服务 的会议管理接口,可以调用服务端API创建会议。
客户端创建会议:用户可以在客户端上直接创建立即开始的 会议或者预约会议。
实践3:加入会议 服务端拉起与会者:调用服务端API,添加与会者。与会者 收到会议来电并加入会议。
客户端主动入会:用户可以,通过输入会议ID/密码入会;点 击邮件链接入会;点击Web链接入会;在微信/微信小程序中 点击链接入会。
实践4:离开会议 服务端结束会议:调用服务端API,结束会议。
客户端离开/结束会议:用户在会中界面上结束会议和离开会 议。
最佳实践 1:鉴权登录
开发者集成华为云会议服务端API时,推荐使用App ID鉴权方式,鉴权通过后可以获取 接入Token。第一次鉴权通过后,华为云会议后台会自动为第三方的用户应用分配一个 华为云会议帐号。
图5-2 APP ID 鉴权
登录成功后,华为云会议会自动给第三方应用分配华为云会议帐号。这个绑定关系由 华为云会议维护,第三方开发者不用关注华为云会议帐号。
表5-2 第三方帐号和华为云会议帐号的映射关系 第三方帐
号
华为云会议帐号
15012345
678 Auto-94b91e94ce3f4ddab9ecfe7625418e60 18012345
678 Auto-7700ebc37cf580a680cdfde4b34b41d0
20 开发指南 5 最佳实践
最佳实践 2:创建会议
● 用户的应用服务器通过调用服务器API接口,实现预定会议或创建即时会议。
● 用户的APP通过调用客户端SDK接口,实现预定会议或创建即时会议。
图5-3 服务端创建会议集成方案
图5-4 客户端创建会议集成方案
最佳实践 3:加入会议
华为云会议提供多种入会方式,用户的应用服务器或者APP通过集成华为云会议的入会 接口,可以通过多种方式加入会议。
● 方式1:终端被邀入会
● 方式2:终端通过会议ID和密码主动入会
● 方式3:邮件链接拉起终端入会
● 方式4:Web链接拉起终端入会
● 方式5:微信/微信小程序拉起终端入会
20 开发指南 5 最佳实践
图5-5 加入会议集成方案
20 开发指南 5 最佳实践
最佳实践 4:离开/结束会议
图5-6 离开会议集成方案
20 开发指南 5 最佳实践
6 注意事项
● 传输安全
支持通过HTTP或HTTPS通道进行请求通信。为了获得更高的安全性,推荐您使用 HTTPS通道发送请求。
● HTTP编码
请求及返回结果都使用UTF-8字符集进行编码。
20 开发指南 6 注意事项
7 提交问题工单
在集成云会议产品的过程中,如有任何问题,推荐您使用华为工单系统提交问题,华 为开放性技术支持工程师收到工单后会尽快处理您的问题。
步骤1 登录华为云https://www.huaweicloud.com/。
步骤2 选择“账号名 > 工单管理”。
图7-1 选择工单管理
步骤3 搜索“会议”。
20 开发指南 7 提交问题工单
图7-2 搜索“会议”
步骤4 选择问题类型为“会议云服务-开放集成类”,并单击“新建工单”。
图7-3 选择问题类型
步骤5 根据界面提示,完成问题和信息填写,然后提交工单。
请尽量详细描述您的问题现象、问题所属类型(服务端集成或客户端集成),并上传 问题相关日志,以便支持人员能尽快定位问题。
说明
问题相关日志请只保留当前问题发生时的日志,删除以前的日志。建议这样获取日志:清空以前 的日志文件-->复现问题-->重新获取日志文件。
20 开发指南 7 提交问题工单
图7-4 填写工单信息
----结束
20 开发指南 7 提交问题工单
8 开发者论坛
开发者如果在集成华为云会议时有任何问题,可以在华为云开发者云社区的“华为云
会议”板块上提问。
20 开发指南 8 开发者论坛