通过动态获取token,然后加入视频通话,结果运行报错

15:29:50:659 Agora-SDK [ERROR]: [client-24a64] join number: 1, Joining channel failed, rollback Error: flag: 4096, message: AgoraRTCError CAN_NOT_GET_GATEWAY_SERVER: dynamic key or token timeout
麻烦哪位大神能帮我看下

2个回答
yft 回复于 2022-04-07 07:40 · IP属地香港

应该是token的问题,可能过期了。可以在控制台生成一个临时的试一下

回复·0
wenshiqi 回复于 2023-03-23 16:26 · IP属地北京

我也遇到这个问题了,求大神指导,token和appid 都是对的,都是新生成的

回复·7

是不是通话中有多人使用同一个token加入频道

本来不就是所有加入同一频道的人,都要用一个token吗

不是的,使用token鉴权方式,会对 频道名、UID、appID 等参数进行鉴权,不同的用户需要使用不同的 token,并且确保:

  • 用于生成 Token 的 App ID 和初始化服务时填入的 App ID 一致。
  • 用于生成 Token 的用户 ID 和加入频道时填入的用户 ID 一致,且数据类型也一致。
  • 用于生成 Token 的频道名和加入频道时填入的频道名一致。

此外,请确保使用了以下的代码库生成 token(新的token生成库):


如果还是有问题,可以提供 join 时传入的 appid、channelname、uid 参数、以及生成的 token 给我们,我们来校验下。

老师,我试了还是不行,因为我重新在声网控制台新创建了一个项目,用新的参数也不行,这也不涉及到多个用户,现在就我一个用户链接也不行。具体参数:

let options = {

   // Pass your app ID here.

   appId: "e342ddf0a3f04ca8a89392077b68966c",

   // Set the channel name.

   channel: "test",

   // Use a temp token

   token: "007eJxTYLjd/PGFTObsl7Pyw9c5aivsdyo+3qLEbrb51KczLz2msX9RYEg1NjFKSUkzSDROMzBJTrRItLA0tjQyMDdPMrOwNDNL3rxRLqUhkJFhWm8JMyMDBIL4LAwlqcUlDAwAwQ8gvg==",

   // Uid

   uid: 123456,

};

而且还有个问题,老师您的回答里提到 不同用户加入同一channel时要提供自己的appid、token,但是我跟着官网的项目搭建后,最后测试的时候,告诉我在测试Demo项目里,要输入相同的token、appid,这是怎么回事呢?具体见下图:

文档中提及的Token是指临时Token,临时Token是供本地测试时使用的,只校验了 appid 和 ChannelName,没有校验 UID,所以在Token有效期内 加入同一个频道的用户都可以使用相同的临时Token。

但在实际生产环境中,出于安全因素考虑,通常还是建议对 UID 进行鉴权的,即不同的用户使用不同的 Token。

校验了这个 token,UID 不匹配。


后台这边帮你生成了一个token,可以试试看哈

appid:e342ddf0a3f04ca8a89392077b68966c
channel:"test"
UID:123456
Token:006e342ddf0a3f04ca8a89392077b68966cIAAb2Mttv5/4Xac5QkxYtRtaiD9S3EKMEQmkJfcagAvSmQx+f9hh03IJIgCJRUgESJMiZAQAAQAt5CNkAgAt5CNkAwAt5CNkBAAt5CNk
过期时间:2023-03-28 15:11

这边用demo测试是可行的: https://webdemo.agora.io/agora-web-showcase/examples/Agora-Web-Tutorial-1to1-Web/