59 lines
3.2 KiB
PHP
59 lines
3.2 KiB
PHP
|
|
<?php
|
||
|
|
// namespace shengwang;
|
||
|
|
require_once "AccessToken.php";
|
||
|
|
|
||
|
|
class RtcTokenBuilder
|
||
|
|
{
|
||
|
|
const RoleAttendee = 0;
|
||
|
|
const RolePublisher = 1;
|
||
|
|
const RoleSubscriber = 2;
|
||
|
|
const RoleAdmin = 101;
|
||
|
|
|
||
|
|
# appID: The App ID issued to you by Agora. Apply for a new App ID from
|
||
|
|
# Agora Dashboard if it is missing from your kit. See Get an App ID.
|
||
|
|
# appCertificate: Certificate of the application that you registered in
|
||
|
|
# the Agora Dashboard. See Get an App Certificate.
|
||
|
|
# channelName:Unique channel name for the AgoraRTC session in the string format
|
||
|
|
# uid: User ID. A 32-bit unsigned integer with a value ranging from
|
||
|
|
# 1 to (232-1). optionalUid must be unique.
|
||
|
|
# role: Role_Publisher = 1: A broadcaster (host) in a live-broadcast profile.
|
||
|
|
# Role_Subscriber = 2: (Default) A audience in a live-broadcast profile.
|
||
|
|
# privilegeExpireTs: represented by the number of seconds elapsed since
|
||
|
|
# 1/1/1970. If, for example, you want to access the
|
||
|
|
# Agora Service within 10 minutes after the token is
|
||
|
|
# generated, set expireTimestamp as the current
|
||
|
|
# timestamp + 600 (seconds)./
|
||
|
|
public static function buildTokenWithUid($appID, $appCertificate, $channelName, $uid, $role, $privilegeExpireTs){
|
||
|
|
return RtcTokenBuilder::buildTokenWithUserAccount($appID, $appCertificate, $channelName, $uid, $role, $privilegeExpireTs);
|
||
|
|
}
|
||
|
|
|
||
|
|
# appID: The App ID issued to you by Agora. Apply for a new App ID from
|
||
|
|
# Agora Dashboard if it is missing from your kit. See Get an App ID.
|
||
|
|
# appCertificate: Certificate of the application that you registered in
|
||
|
|
# the Agora Dashboard. See Get an App Certificate.
|
||
|
|
# channelName:Unique channel name for the AgoraRTC session in the string format
|
||
|
|
# userAccount: The user account.
|
||
|
|
# role: Role_Publisher = 1: A broadcaster (host) in a live-broadcast profile.
|
||
|
|
# Role_Subscriber = 2: (Default) A audience in a live-broadcast profile.
|
||
|
|
# privilegeExpireTs: represented by the number of seconds elapsed since
|
||
|
|
# 1/1/1970. If, for example, you want to access the
|
||
|
|
# Agora Service within 10 minutes after the token is
|
||
|
|
# generated, set expireTimestamp as the current
|
||
|
|
public static function buildTokenWithUserAccount($appID, $appCertificate, $channelName, $userAccount, $role, $privilegeExpireTs){
|
||
|
|
$token = AccessToken::init($appID, $appCertificate, $channelName, $userAccount);
|
||
|
|
$Privileges = AccessToken::Privileges;
|
||
|
|
$token->addPrivilege($Privileges["kJoinChannel"], $privilegeExpireTs);
|
||
|
|
if(($role == RtcTokenBuilder::RoleAttendee) ||
|
||
|
|
($role == RtcTokenBuilder::RolePublisher) ||
|
||
|
|
($role == RtcTokenBuilder::RoleAdmin))
|
||
|
|
{
|
||
|
|
$token->addPrivilege($Privileges["kPublishVideoStream"], $privilegeExpireTs);
|
||
|
|
$token->addPrivilege($Privileges["kPublishAudioStream"], $privilegeExpireTs);
|
||
|
|
$token->addPrivilege($Privileges["kPublishDataStream"], $privilegeExpireTs);
|
||
|
|
}
|
||
|
|
return $token->build();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
?>
|