class Dingtalk::Client
Attributes
access_token[RW]
app_id[RW]
app_secret[RW]
expired_at[RW]
redis_key[RW]
Public Class Methods
new(app_id, app_secret, options={})
click to toggle source
Calls superclass method
# File lib/dingtalk/client.rb, line 17 def initialize(app_id, app_secret, options={}) @app_id = app_id @app_secret = app_secret @expired_at = Time.now.to_i @redis_key = security_redis_key(options[:redis_key] || "dingtalk_#{app_id}") super() end
Public Instance Methods
get_access_token()
click to toggle source
# File lib/dingtalk/client.rb, line 25 def get_access_token synchronize{ token_store.access_token } end
http_get(url, url_params={}, endpoint="plain")
click to toggle source
# File lib/dingtalk/client.rb, line 37 def http_get(url, url_params={}, endpoint="plain") url_params = endpoint == Dingtalk::ECO_ENDPOINT ? url_params.merge(eco_access_token_param) : url_params.merge(access_token_param) Dingtalk.http_get_without_token(url, url_params, endpoint) end
http_post(url, post_body={}, url_params={}, endpoint="plain")
click to toggle source
# File lib/dingtalk/client.rb, line 42 def http_post(url, post_body={}, url_params={}, endpoint="plain") url_params = endpoint == Dingtalk::ECO_ENDPOINT ? eco_access_token_param.merge(url_params) : access_token_param.merge(url_params) Dingtalk.http_post_without_token(url, post_body, url_params, endpoint) end
is_valid?()
click to toggle source
# File lib/dingtalk/client.rb, line 29 def is_valid? token_store.valid? end
token_store()
click to toggle source
# File lib/dingtalk/client.rb, line 33 def token_store Token::Store.init_with(self) end
Private Instance Methods
access_token_param()
click to toggle source
# File lib/dingtalk/client.rb, line 53 def access_token_param {access_token: get_access_token} end
eco_access_token_param()
click to toggle source
# File lib/dingtalk/client.rb, line 49 def eco_access_token_param {session: get_access_token, timestamp: Time.now.strftime("%Y-%m-%d %H:%M:%S"), format: 'json', v: '2.0'} end
security_redis_key(key)
click to toggle source
# File lib/dingtalk/client.rb, line 57 def security_redis_key(key) Digest::MD5.hexdigest(key.to_s).upcase end