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