class AgoraDynamicKey::RTMTokenBuilder

Attributes

token[RW]

Public Class Methods

build_token(payload) click to toggle source

@param payload :app_id app_id 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.

:app_certificate app_certificate Certificate of the application that you registered in

the Agora Dashboard. See Get an App Certificate.

:role role AgoraDynamicKey::RTCTokenBuilder::Role::RTM_USER = 1: RTM USER :account User Account. :privilege_expired_ts 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 time stamp
+ 600 (seconds).
# File lib/dynamic_key/rtm_token_builder.rb, line 22
def build_token payload
  check! payload, %i[app_id app_certificate role account privilege_expired_ts]
  token = AccessToken.new @params.merge(:channel_name => @params[:account])
  token.grant Privilege::RTM_LOGIN, @params[:privilege_expired_ts]
  token.build!
end

Private Class Methods

check!(payload, args) click to toggle source

params check

# File lib/dynamic_key/rtm_token_builder.rb, line 31
def check!(payload, args)
  raise InvalidParamsError.new(params: payload), "invalid params" if payload.nil? or payload.empty?
  symbolize_keys payload.select { |key| args.include? key }
  missing_keys = args - @params.keys
  raise InvalidParamsError.new(params: payload, missing_keys: missing_keys), "missing params" if missing_keys.size != 0
  _invalid_params = @params.select { |hash, (k, v)| v.nil? or v.empty?}
  raise InvalidParamsError.new(params: payload), "invalid params" if _invalid_params.empty?
end
symbolize_keys(payload) click to toggle source

symbolize keys

# File lib/dynamic_key/rtm_token_builder.rb, line 41
def symbolize_keys payload
  @params = payload.inject({}) { |hash, (k, v)| hash[k.to_sym] = v; hash }
end