腾讯会议对接iDaaS后可以实现免登入会/免登打开腾讯会议web页面的效果(具体参考《腾讯会议免登SDK接入文档》),目前生成的链接都可重复使用的,对于不希望免登链接被拷贝的场景有一定的局限性,并且免登入会时还需要经过系统浏览器跳转。本文介绍的方法主要是优化这两点体验。
先看一下实现的效果。
下文以java语言为例使用元宝生成代码,文末提供了源码供参考。
如果使用其他编程语言可以参考本文用到的提示词,开发过程中遇到运行报错的情况可将报错日志输入到元宝中排查。
具体可参考《腾讯会议免登SDK接入文档》,本文不再重复说明。配置完成后,得到Issuer字段值,免登前缀prefixUrl和私钥文件,作为后续的输入参数。
id token的header部分字段定义:
{
typ: 'JWT',
alg: 'RS256'
}
paload部分字段定义:
{
sub: userid,
iss: 'meeting', // Issuer字段值
iat: now, // 生成时间,秒级时间戳
exp: expired // 过期时间,秒级时间戳
}
根据上面的定义,使用腾讯元宝,大模型引擎选择DeepSeek,勾选深度思考和联网搜索(后续的步骤都保持相同的配置),然后输入以下提示词:
使用java语言实现一个名为generateIdToken的函数,用途是生成一个jwt token,header参数定义为:
{
typ: 'JWT',
alg: 'RS256'
}
payload部分定义为:
{
sub: userid,
iss: 'meeting', // Issuer字段值
iat: now, // 生成时间,秒级时间戳
exp: expired // 过期时间,秒级时间戳
}
秘钥文件名为xxx.pem
得到读取密钥文件和生成id token的代码。
这里免登链接的用途是经过跳转处理后获取到一个一次性的授权码(sso_auth_code),因此这里免登链接的格式可以写死成跳转到腾讯会议首页,免登链接的action参数的值如下:
String actionString = "{\"action\":\"jump\",\"params\":{\"redirect_url\":\"https://meeting.tencent.com\",\"mode\":\"1\"}}";
接下来只需要将action参数做一下base64编码,然后和前面的id token参数一起,拼接成一个可重复使用的免登链接。输入以下提示词:
使用java语言实现一个名为generateUrl的函数,入参为prefixUrl字符串和idToken字符串,作用是生成一个链接,前缀为prefixUrl,action参数为actionString做base64编码后的字符串,String actionString = "{\"action\":\"jump\",\"params\":{\"redirect_url\":\"https://meeting.tencent.com\",\"mode\":\"1\"}}";,id_token参数的值为idToken
得到生成可重复使用的免登链接的代码。
使用以下提示词获取sso_auth_code参数:
使用java实现一个名为getAuthCode的函数,用途是模拟浏览器请求一个url,需要自动缓存cookie,将每次要请求的url打印出来,会有多次302和303跳转,当url中出现sso_auth_code参数的时候,将该参数作为string类型返回,否则返回空值
得到获取sso_auth_code的代码。
使用以下提示词生成scheme链接:
使用java实现一个名为generateJoinScheme的函数,入参为meetingCode字符串和userCode字符串,生成一个url,前缀为wemeet://page/inmeeting,meeting_code参数的值为meetingCode,token参数的值为空,launch_id参数为一个16位的十六进制随机字符串,user_code参数的值为userCode
依次调用前面步骤的方法,即可得到最终的scheme链接joinScheme。
使用以下提示词生成跳转链接:
使用java实现一个名为generateJumpUrl的函数,入参为authCode字符串和redirectLink字符串,用途是拼接生成一个链接,链接的前缀为https://meeting.tencent.com,sso_auth_code参数的值为authCode,redirect_link参数的值为redirectLink,需要对redirectLink参数做URL encode处理
依次调用前面步骤的方法,即可得到最终的跳转链接jumpUrl。
由于获取sso_auth_code步骤耗时较长,如果在用户点击后再生成链接跳转体验欠佳。可以提前获取sso_auth_code,用户需要点击跳转的时候再把sso_auth_code参数和会议号/要打开的URL拼接生成最终的链接。此外sso_auth_code需要每5分钟刷新一次,避免过期失效。id token的有效期可以设置的长一些,这样每次刷新sso_auth_code的时候不需要重新生成id token。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有