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