module Alidayu
Constants
- VERSION
Attributes
access_key_id[RW]
access_key_secrete[RW]
Public Class Methods
get_signature(params)
click to toggle source
# File lib/alidayu.rb, line 30 def get_signature params stander_string = generate_stander_string(params) construct_string = 'GET&' + CGI.escape('/') + '&' + CGI.escape(stander_string) digest = OpenSSL::Digest.new('sha1') key = access_key_secrete + '&' Base64.encode64(OpenSSL::HMAC.digest(digest, key, construct_string)).gsub(/\n/, '') end
send_text_message(params)
click to toggle source
required params
PhoneNumbers SignName TemplateCode TemplateParam
# File lib/alidayu.rb, line 20 def send_text_message params params.map { |key, value| params[key] = value.to_json.to_s if value.class.to_s == Hash.name } params.merge!( {Action: 'SendSms', Version: '2017-05-25', RegionId: 'cn-hangzhou'}) JSON.parse request params end
Private Class Methods
create_params(params)
click to toggle source
# File lib/alidayu.rb, line 60 def create_params params rest_params = { AccessKeyId: access_key_id, Timestamp: get_utc_timestamp, SignatureMethod: 'HMAC-SHA1', SignatureVersion: '1.0', SignatureNonce: get_nonce, Format: "JSON" } params.merge rest_params end
generate_stander_string(params)
click to toggle source
# File lib/alidayu.rb, line 41 def generate_stander_string params str = '' keys = params.keys.sort keys.each do |key| str += "#{CGI.escape(key.to_s)}=#{CGI.escape(params[key.to_sym])}&" end str.gsub(/\&$/, '') end
get_nonce()
click to toggle source
# File lib/alidayu.rb, line 56 def get_nonce SecureRandom.uuid end
get_request_url(params)
click to toggle source
# File lib/alidayu.rb, line 72 def get_request_url params require_host = 'http://dysmsapi.aliyuncs.com/?' final_params = create_params params signature = get_signature final_params final_params.merge!({Signature: signature}) final_params.map do |key, value| require_host += "#{CGI.escape(key.to_s)}=#{CGI.escape(value)}&" end require_host.gsub(/\&$/, '') end
get_utc_timestamp()
click to toggle source
# File lib/alidayu.rb, line 52 def get_utc_timestamp Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ") end
request(params)
click to toggle source
# File lib/alidayu.rb, line 84 def request params url = URI(get_request_url(params)) response = Net::HTTP.get_response(url) response.body end