class TencentCloud::TpnsClient

Constants

API_VERSION
ENDPOINTS

Public Class Methods

new(access_id, secret_key, region) click to toggle source
# File lib/tencent_cloud/tpns/v20210422/tpns_client.rb, line 18
def initialize(access_id, secret_key, region)
  @access_id = access_id
  @secret_key = secret_key
  @end_point = ENDPOINTS[region.to_s]
end

Public Instance Methods

http_request(api_path, data) click to toggle source
# File lib/tencent_cloud/tpns/v20210422/tpns_client.rb, line 24
def http_request(api_path, data)
  current_timestamp = Time.current.to_i.to_s
  uri = URI.parse("#{@end_point}#{api_path}")

  request = Net::HTTP::Post.new(uri.to_s)
  request.body = data.to_json
  request.initialize_http_header({AccessId: @access_id, TimeStamp: current_timestamp, Sign: sign(current_timestamp, request.body)})
  request.set_content_type 'application/json'

  Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
    http.request request
  end
end
sign(current_timestamp, body) click to toggle source
# File lib/tencent_cloud/tpns/v20210422/tpns_client.rb, line 38
def sign(current_timestamp, body)
  Base64.strict_encode64(OpenSSL::HMAC.hexdigest('sha256', @secret_key, "#{current_timestamp}#{@access_id}#{body}"))
end