加入频道失败 DYNAMIC_USE_STATIC_KEY

Posted

技术标签:

【中文标题】加入频道失败 DYNAMIC_USE_STATIC_KEY【英文标题】:join channel failed DYNAMIC_USE_STATIC_KEY 【发布时间】:2020-06-13 08:32:22 【问题描述】:

我正在尝试使用 Agora.io 视频直播系统。但是我在开发人员控制台中收到以下错误。

点击加入按钮后出现以下错误。

Agora-SDK [ERROR]: [713FF] Get server node failed [DYNAMIC_USE_STATIC_KEY] https://webrtc2-ap-web-1.agora.io/api/v1 DYNAMIC_USE_STATIC_KEY agora.js:161:41
Agora-SDK [INFO]: [713FF] Join failed: DYNAMIC_USE_STATIC_KEY agora.js:155:41
[ERROR] : join channel failed DYNAMIC_USE_STATIC_KEY live:1146:15

我必须在agora 管理面板上进行安排。我做错了什么。

 var rand = <?php echo rand(1111111,9999999); ?>;
 var agoraAppId = 'API ID HERE'; // set app id
 var channelName = "stream_<?php echo $creatorUserID;?>_"+rand; // set channel name
// join a channel
function joinChannel() 
  var token = generateToken();
  var userID = 0; // set to null to auto generate uid on successfull connection

  // set the role
  client.setClientRole('host', function() 
    console.log('Client role set as host.');
  , function(e) 
    console.log('setClientRole failed', e);
  );

  // client.join(token, 'allThingsRTCLiveStream', 0, function(uid) 
  client.join(token, channelName, userID, function(uid) 
      createCameraStream(uid, );
      localStreams.uid = uid; // keep track of the stream uid  
      console.log('User ' + uid + ' joined channel successfully');
      $('#main_live_video').html('')
      $('#publishBtn').removeAttr('disabled');
      $('#publishBtn').text("Please Wait");
      $('#publishBtn').addClass('hidden');
      $('.end_vdo_call').removeClass('hidden');

      $.post(requestUrl + "?f=live", stream_name: channelName, function(data, textStatus, xhr) 
                    if (data.status == 200) 
                      $('#live_post_id').val(data.post_id);
                    
                  );
  , function(err) 
      console.log('[ERROR] : join channel failed', err);
  );

function generateToken() 
 return null; // TODO: add a token generation

【问题讨论】:

【参考方案1】:

您收到的错误是因为您尝试使用启用了令牌身份验证的 AppID,但在加入频道时未传递令牌。

要解决这个问题,您通常有三个选择:

    创建一个新项目并生成一个新的 AppID。打开Project Management tab within the Agora Console。单击屏幕左上角的“创建”按钮。在对话框中,确保选择底部选项。

    使用Project Management tab within the Agora Console 在您的项目上生成一个临时令牌(有效期为 24 小时)。请按照以下步骤操作:

    选择生成临时令牌选项 输入频道名称并生成令牌 使用您的令牌字符串更新 generateToken 函数,而不是返回 null。
function generateToken() 
  return null; // add a token string here

    实现令牌服务器并生成动态令牌。更多详情请查看: Agora Guide on token generation GitHub repo with the token server Code for PHP。 添加 PHP 脚本以在 generateToken 函数中生成令牌以返回您的令牌字符串,而不是返回 null。
function generateToken() 
  return null; // add a token string here

第二个选项不适用于您的实现,因为您正在使用用户名生成频道名称并附加随机值。生成临时令牌时,您需要知道通道的名称。

【讨论】:

以上是关于加入频道失败 DYNAMIC_USE_STATIC_KEY的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Discord.py Cogs 使 Discord Bot 加入语音频道并在成员加入频道时播放音频文件

用户加入频道时的 Telegram Bot 事件

Discord Bot (C#) 问题加入语音频道

即使其他人加入了频道,也继续播放歌曲

当有人加入或离开其语音频道时,让机器人向文本频道发送消息

如何向特定频道发送加入/离开消息