You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 lines
3.0 KiB

import os
import sys
from collections import OrderedDict
from .AccessToken import *
Role_Attendee = 0 # depreated, same as publisher
Role_Publisher = 1 # for live broadcaster
Role_Subscriber = 2 # default, for live audience
Role_Admin = 101 # deprecated, same as publisher
class RtcTokenBuilder:
# 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)./
@staticmethod
def buildTokenWithUid(appId, appCertificate, channelName, uid, role, privilegeExpiredTs):
return RtcTokenBuilder.buildTokenWithAccount(appId, appCertificate, channelName, uid, role, privilegeExpiredTs)
# 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
@staticmethod
def buildTokenWithAccount(appId, appCertificate, channelName, account, role, privilegeExpiredTs):
token = AccessToken(appId, appCertificate, channelName, account)
token.addPrivilege(kJoinChannel, privilegeExpiredTs)
if (role == Role_Attendee) | (role == Role_Admin) | (role == Role_Publisher):
token.addPrivilege(kPublishVideoStream, privilegeExpiredTs)
token.addPrivilege(kPublishAudioStream, privilegeExpiredTs)
token.addPrivilege(kPublishDataStream, privilegeExpiredTs)
return token.build()