为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
相关产品推荐
相关产品推荐

