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

如何使用PHP为Agora RTC直播生成有效Token并成功加入频道

Agora RTC PHP服务端可用Token生成指南

先排查常见失效原因

  • 代码中填写的App ID、App 证书和声网后台对应项目的配置不一致,开启安全模式的项目必须填写App证书,仅用App ID无法生成有效Token
  • 生成Token时传入的频道名、用户ID(uid)和客户端加入频道时的参数不匹配,注意大小写、特殊字符必须完全一致
  • 服务器本地时间和标准时间偏差超过5分钟,导致签名校验失败,需要先同步服务器NTP时间
  • Token有效期设置过短,生成时的过期时间戳已经超过当前时间
  • 选错Token类型:RTC直播场景4.x及以上版本SDK必须使用RTC Token,不要混用旧版动态密钥或RTM Token
  • 权限角色配置错误:主播必须设置为发布权限,观众如果需要连麦也要提前调整为发布权限

正确生成代码实现

首先确保你使用的是对应SDK版本的Token生成类文件,核心实现代码如下:

<?php
// 引入官方RtcTokenBuilder类文件
require_once "AgoraDynamicKey/php/src/RtcTokenBuilder.php";

// 基础配置,所有参数必须和客户端传入的参数匹配
$appId = "你的声网项目App ID";
$appCertificate = "你的声网项目App证书";
$channelName = "和客户端完全一致的频道名称";
// 若客户端使用数字uid则填对应数字,填0代表Token对该频道所有uid生效
$uid = 123456;
// 角色配置:主播填RolePublisher,仅观看的观众填RoleSubscriber
$role = RtcTokenBuilder::RolePublisher;
// 有效期单位为秒,最长支持86400(24小时)
$expireTime = 3600;
$expireTimestamp = time() + $expireTime;

// 生成Token
$token = RtcTokenBuilder::buildTokenWithUid($appId, $appCertificate, $channelName, $uid, $role, $expireTimestamp);

// 若客户端使用字符串类型的用户账号,使用下方方法生成
// $userAccount = "客户端传入的字符串用户账号";
// $token = RtcTokenBuilder::buildTokenWithUserAccount($appId, $appCertificate, $channelName, $userAccount, $role, $expireTimestamp);

生成后直接返回Token给客户端即可,调用时确保客户端加入频道的参数和生成Token的参数完全匹配。

内容的提问来源于stack exchange,提问作者Shahzaib Anwar Rehmani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 10:24:10