首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用腾讯元宝生成一次性链接,实现免登入会/免登打开腾讯会议web页面

如何使用腾讯元宝生成一次性链接,实现免登入会/免登打开腾讯会议web页面

原创
作者头像
liquid
修改2025-05-22 16:47:04
修改2025-05-22 16:47:04
76700
代码可运行
举报
文章被收录于专栏:腾讯会议腾讯会议
运行总次数:0
代码可运行

腾讯会议对接iDaaS后可以实现免登入会/免登打开腾讯会议web页面的效果(具体参考《腾讯会议免登SDK接入文档》),目前生成的链接都可重复使用的,对于不希望免登链接被拷贝的场景有一定的局限性,并且免登入会时还需要经过系统浏览器跳转。本文介绍的方法主要是优化这两点体验。

先看一下实现的效果。

三方应用免登跳转入会效果
三方应用免登跳转入会效果
免登打开腾讯会议web页面效果
免登打开腾讯会议web页面效果

下文以java语言为例使用元宝生成代码,文末提供了源码供参考。

如果使用其他编程语言可以参考本文用到的提示词,开发过程中遇到运行报错的情况可将报错日志输入到元宝中排查。

iDaaS配置&生成RSA公私钥

具体可参考《腾讯会议免登SDK接入文档》,本文不再重复说明。配置完成后,得到Issuer字段值,免登前缀prefixUrl和私钥文件,作为后续的输入参数。

生成id token

id token的header部分字段定义:

代码语言:txt
复制
{
    typ: 'JWT',
    alg: 'RS256'
}

paload部分字段定义:

代码语言:txt
复制
{
    sub: userid,
    iss: 'meeting', // Issuer字段值
    iat: now, // 生成时间,秒级时间戳
    exp: expired // 过期时间,秒级时间戳
}

根据上面的定义,使用腾讯元宝,大模型引擎选择DeepSeek,勾选深度思考和联网搜索(后续的步骤都保持相同的配置),然后输入以下提示词:

代码语言:txt
复制
使用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参数的值如下:

代码语言:javascript
代码运行次数:0
运行
复制
String actionString = "{\"action\":\"jump\",\"params\":{\"redirect_url\":\"https://meeting.tencent.com\",\"mode\":\"1\"}}";

接下来只需要将action参数做一下base64编码,然后和前面的id token参数一起,拼接成一个可重复使用的免登链接。输入以下提示词:

代码语言:txt
复制
使用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参数

使用以下提示词获取sso_auth_code参数:

代码语言:txt
复制
使用java实现一个名为getAuthCode的函数,用途是模拟浏览器请求一个url,需要自动缓存cookie,将每次要请求的url打印出来,会有多次302和303跳转,当url中出现sso_auth_code参数的时候,将该参数作为string类型返回,否则返回空值

得到获取sso_auth_code的代码。

生成最终的一次性链接

1、生成scheme链接,用于唤起腾讯会议客户端入会

使用以下提示词生成scheme链接:

代码语言:txt
复制
使用java实现一个名为generateJoinScheme的函数,入参为meetingCode字符串和userCode字符串,生成一个url,前缀为wemeet://page/inmeeting,meeting_code参数的值为meetingCode,token参数的值为空,launch_id参数为一个16位的十六进制随机字符串,user_code参数的值为userCode

依次调用前面步骤的方法,即可得到最终的scheme链接joinScheme。

2、生成web跳转链接,用于打开腾讯会议web页面

使用以下提示词生成跳转链接:

代码语言:txt
复制
使用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。

源码参考

https://github.com/carlliu67/wemeet_sso_login_java

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • iDaaS配置&生成RSA公私钥
  • 生成id token
  • 生成可重复使用的免登链接
  • 获取sso_auth_code参数
  • 生成最终的一次性链接
    • 1、生成scheme链接,用于唤起腾讯会议客户端入会
    • 2、生成web跳转链接,用于打开腾讯会议web页面
  • 使用建议
  • 源码参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档