class MinxingRubySdk::Ocu::OcuAccount
Attributes
api_ocu_messages[RW]
api_ocu_resources[RW]
api_prefix[RW]
api_user_info[RW]
ocuId[RW]
ocuSecret[RW]
root_url[RW]
Public Class Methods
new(args={})
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 14 def initialize(args={}) config = YAML.load_file(MinxingRubySdk.root_path + '/settings.yml') defaults = { :api_prefix => config['api']['api_prefix'], :api_ocu_messages => config['api']['ocu_messages'], :api_ocu_resources => config['api']['ocu_resources'], :api_user_info => config['api']['user_info'] } args.merge(defaults).each do |attr,val| instance_variable_set("@#{attr}", val) unless val.nil? end if args init_connection end
Public Instance Methods
beforeRequest(url, headers, params)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 52 def beforeRequest(url, headers, params) time = Time.new.to_i.to_s @connection.token = CGI::escape(@ocuId + ":" + Util.hmac_sha1(url + "?timestamp=" + time, @ocuSecret)) headers["timestamp"] = time end
check_signature(request,params)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 91 def check_signature(request,params) if request.get? token = MinxingRubySdk::Util.url_param_decode params['token'] timestamp = MinxingRubySdk::Util.url_param_decode params['timestamp'] nonce = MinxingRubySdk::Util.url_param_decode params['nonce'] open_id = MinxingRubySdk::Util.url_param_decode params['open_id'] elsif request.post? token = request.headers['token'] timestamp = request.headers['timestamp'] nonce = request.headers['nonce'] open_id = request.headers['open_id'] end sign = MinxingRubySdk::Util.hmac_sha1(timestamp + nonce, @ocuSecret) open_id if CGI::escape(@ocuId + ":" +sign) == token end
get_user_info(open_id)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 108 def get_user_info(open_id) headers = {} params = {} url = @root_url + @api_prefix + @api_user_info + "/" + open_id beforeRequest(url, headers, params) get(url,true,headers,params) end
init_connection()
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 30 def init_connection @connection = MinxingRubySdk::Connection.new @root_url @connection.tokenType = 'MAC' @connection.token = '' end
save_resource_and_get_id(articleMessage)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 58 def save_resource_and_get_id(articleMessage) url = @root_url + @api_prefix + @api_ocu_resources params = {} headers = {} articles = articleMessage.articles if articles.size > 0 for i in 0...articles.size if articles[i].type == 'resource' resource = articles[i].resource[0] params['title'] = resource.title params['sub_title'] = resource.sub_title params['author'] = resource.author params['create_time'] = resource.create_time params['pic_url'] = resource.pic_url params['content'] = resource.description beforeRequest(url, headers, params) response_body = JSON post(url, true, headers, params) articles[i].resource_id = response_body['resource_id'] end end end end
send_message_to_public(message, type)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 88 def send_message_to_public(message, type) send_to_post(message, type) end
send_message_to_users(message, type, users)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 81 def send_message_to_users(message, type, users) usersStr = users if users.is_a?(Array) usersStr = users.join(',') end send_to_post(message, type, usersStr) end
send_to_post(message, type, *userStr)
click to toggle source
# File lib/minxing_ruby_sdk/ocu/ocu_account.rb, line 36 def send_to_post (message, type, *userStr) headers = {} params = {} save_resource_and_get_id(message) if message.is_a? ArticleMessage params['body'] = message.body params['direct_to_user_ids'] = userStr[0] unless userStr.nil? params['content_type'] = type url = @root_url + @api_prefix + @api_ocu_messages beforeRequest(url, headers, params) post(url, true, headers, params) end