You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为Flutter音频直播应用生成Agora Token遇错及POST处理器开发问询

解决步骤

1. 服务端添加POST接口逻辑

如果你使用的是教程对应的Express框架,直接在现有服务代码中添加如下路由即可实现buildTokenWithUid生成RTC Token的逻辑:

const { RtcTokenBuilder, RtcRole } = require('agora-access-token');

// 替换为你自己的Agora后台对应参数
const AGORA_APP_ID = '你的Agora应用ID';
const AGORA_APP_CERT = '你的Agora应用证书';
const TOKEN_VALID_PERIOD = 3600; // Token有效期,单位秒,示例为1小时

// 新增POST接口路由
app.post('/generate-rtc-token', (req, res) => {
  // 本地调试可加跨域配置
  res.header('Access-Control-Allow-Origin', '*');

  const { channelName, uid, role } = req.body;
  // 必填参数校验
  if (!channelName || uid === undefined) {
    return res.status(400).json({ error: '缺少必填参数:channelName、uid' });
  }

  // 角色转换,主播传publisher,观众传subscriber
  const userRole = role === 'publisher' ? RtcRole.PUBLISHER : RtcRole.SUBSCRIBER;
  const expiredAt = Math.floor(Date.now() / 1000) + TOKEN_VALID_PERIOD;

  // 调用指定方法生成Token
  const rtcToken = RtcTokenBuilder.buildTokenWithUid(
    AGORA_APP_ID,
    AGORA_APP_CERT,
    channelName,
    uid,
    userRole,
    expiredAt
  );

  return res.json({
    token: rtcToken,
    uid: uid,
    channelName: channelName,
    expiredAt: expiredAt
  });
});

添加后重启你的Express服务生效。

2. Postman请求配置(首次使用按步骤操作)

  • 打开Postman新建请求,请求方式选择POST
  • 地址栏输入你的服务地址,示例为http://localhost:3000/generate-rtc-token(端口和路径和你服务配置保持一致)
  • 切换到Body标签,选择raw格式,右侧下拉选JSON
  • 输入请求参数示例:
{
  "channelName": "test_live_001",
  "uid": 10001,
  "role": "publisher"
}
  • 点击Send按钮即可在响应体拿到生成的RTC Token

3. 常见报错排查

  • 返回404:检查服务是否正常启动、请求地址的端口、路径是否和服务配置一致
  • 返回400参数错误:检查是否漏传channelName、uid,uid为数字类型不要加引号
  • 服务端依赖报错:执行npm install agora-access-token重装Agora Token生成依赖
  • 跨域报错:确认服务端已经添加了跨域响应头配置

内容的提问来源于stack exchange,提问作者Michael Ogundipe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 03:24:00