| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace app\common\library\agora\token;
- 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();
- }
- }
- ?>
|