腾讯会议企业自建应用鉴权_办公协同解决方案

使用说明

腾讯会议提供的 JSAPI 有很多是需要进行鉴权才能调用的,需要 wemeet.permission.config 或者 wemeet.permission.agentConfig 先进行鉴权,然后再调用。

鉴权步骤

步骤一:通过 auth_code(免登码)获取 user_id

接口描述:通过 auth_code(免登码)换取账号 userid。切记 access_token 只可以存储在应用后台,不要暴露到前端页面,否则会有安全风险。调用方法:Get接口请求域名:

https://api.meeting.qq.com/v1/jsapi/user?auth code={auth code}

header:请参见 企业自建应用鉴权(JWT)。

输出参数

参数名称 参数类型 参数描述
user_info UserObj 用户对象

data 内数据结构

参数名称 参数类型 参数描述
user_id String 企业用户 User_ID

示例

输入示例

https://api.meeting.qq.com/v1/jsapi/user?auth_code=98187ecd**4846ac555a658do c1122

输出示例

{  "code": 0,  "message":"SUCCESS",  "nonce":"98187ecdebca4846",  "user_info":{  "user_id":"zhangsan'  },}

步骤二:获取 jsapi_ticket

接口描述:根据 userid 获取 jsticket。jsapi_ticket 是一次性的,不可重复使用。当前用户获取的 jsapi_ticket,其他用户无法使用。调用方式: GET接口请求域名:

https://api.meeting.qq.com/v1/jsapi/ticket?userid={userid}

header:请参见 企业自建应用鉴权(JWT)。

输入参数

参数名称 必选 参数类型 参数描述
userid String 用户 ID。

输出参数

参数名称 参数类型 参数描述
ticket String jsticket 票据
timestamp String 时间戳
expired_time String 过期时间

示例

输出参数:

{"ticket":"1e05cf52310xxxxxx447ecr4a55","timestamp":"1623924237","expired_time":"300"}

步骤三:获取签名参数

在前端进行鉴权之前,需要获取以下签名所需的参数(必填):

参数 字段类型 描述
corp_id String 企业 ID,企业在会议平台备案的 ID
sdk_id String 应用 ID,接入方在会议平台备案的应用 ID
timestamp String 生成签名的时间对应秒级时间戳
nonce_str String 接入方后台随机生成的字符串
url String 当前需要初始化 JS_SDK 的页面地址,需在腾讯会议客户端内打开该地址 。地址的域名必须是在会议平台备案的可信域名 (推荐从 header 的 refer 里面去获取,或者通过 location.href 去获取,不要写死)
ticket String 步骤二中的获取到的 JS_SDK Ticket

步骤四:计算签名

接入方服务端生成 JS_SDK Config 给到自己的前端。计算签名的示例代码(包含 go/java/python)可参见:前端 JS-API 签名示例代码,如遇问题,可通过 JS-API 签名工具 进行自检。
JS_SDK Config 包含的字段:

参数 字段类型 描述
corp_id String 企业 ID
sdk_id String 应用 ID
timestamp String 生成签名的时间对应秒级时间戳
nonce_str String 接入方后台随机生成的字符串
sign String 配置参数签名

上面参数中的 sign 是对多个参数的签名。签名规则如下:签名对应明文的字段:

字段顺序 参数 描述
1 corp_id 企业 ID
2 sdk_id 应用 ID
3 timestamp 生成签名的时间对应秒级时间戳
4 nonce_str 接入方后台随机生成的字符串
5 url 需要初始化 JS_SDK 的当前页面地址(不要转码)
6 ticket 接入方后台请求会议后台获取的 JS_SDK Ticket

签名明文拼接:
以下是样例明文,注意 字段顺序不可更改,字段间使用”&”间隔:

"corp_id=12345&sdk_id=67890&timestamp=1622517702&nonce_str=abcde&url=https://www.test.com/search?a=1&b=2&ticket=ABCDEFXX"

注意url 字段包含协议头、域名、路径、Query 参数,不包含位置参数。例如:https://www.test.com/search?a=1&b=2。若当前 url 最后带有#号,例如:https://www.test.com/search/#/
由于#号是代表一个锚点,计算签名的时候,腾讯会议侧会忽略#号和#号后面的,故接入方也需要用代码处理,忽略掉#号和#号后面的,最终 url 应该为 https://www.test.com/search/。签名方法:sha256

步骤五:引入使用的JS

引入方法请参见 引用方法。

步骤六:JSAPI 鉴权

注意:wemeet.permission.config 中所有的参数必须直接来自服务端,不能直接在前端定义。参数描述:调用 permission.config,实现企业自建应用 JSAPI 鉴权配置。支持的版本:2.17.0是否需要鉴权:否

参数说明

授权请求输入参数:
param:AuthConfigParam

参数名称 参数类型 参数描述
sdkId String 应用 ID
corpId String 应用的企业 ID
signature String 签名
nonceStr String 生成签名的随机串
timestamp String 生成签名的时间戳

返回 Promise。

代码示例

wemeet.permission.config({  sdkId: SDKID,  corpId: CROPID,  signature: SINGATURE,  nonceStr: NONCE_STR,  timestamp: TIMESTAMP,})  .then(() => {  // success  })   .catch((err) => {    // failed  });

步骤七:调用 JSAPI

步骤六鉴权通过以后就可以调用 JSAPI 了。

对腾讯办公协同的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案