diff --git a/lib/dingtalk/api/base.rb b/lib/dingtalk/api/base.rb index a61e122..b74cbdd 100644 --- a/lib/dingtalk/api/base.rb +++ b/lib/dingtalk/api/base.rb @@ -14,7 +14,11 @@ module Dingtalk end def set_access_token - Suite.new.set_corp_access_token(@corp.corp_id, @corp.permanent_code) + if @corp.isv_mode? + Suite.new.set_corp_access_token(@corp.corp_id, @corp.permanent_code) + elsif !@corp.corp_secret.nil? + set_corp_access_token + end end def js_ticket @@ -22,6 +26,14 @@ module Dingtalk ticket.to_s.empty? ? set_js_ticket : ticket end + def set_corp_access_token + res = http_get("gettoken?corpid=#{@corp.corp_id}&corpsecret=#{@corp.corp_secret}") + key = "#{@corp.corp_id}_#{ACCESS_TOKEN}" + redis.set(key, res['access_token']) + redis.expire(key, 6600) + redis.get(key) + end + def set_js_ticket key = "#{@corp.corp_id}_#{JS_TICKET}" res = http_get("get_jsapi_ticket?access_token=#{access_token}") -- libgit2 0.21.0