Skip to content

Commit

Permalink
Merge pull request #6 from mycolorway/open-data
Browse files Browse the repository at this point in the history
Open js-sdk
  • Loading branch information
seandong authored Jul 13, 2021
2 parents eae56be + 8a6e655 commit bbc41d0
Show file tree
Hide file tree
Showing 8 changed files with 63 additions and 8 deletions.
8 changes: 8 additions & 0 deletions lib/wework/api/agent.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,19 @@ def jsapi_ticket
jsticket_store.ticket
end

def jsapi_agent_ticket
jsticket_agent_store.ticket
end

private

def jsticket_store
@jsticket_store ||= Token::JsTicket.new self
end

def jsticket_agent_store
@jsticket_agent_store ||= Token::JsAgentTicket.new self
end
end
end
end
2 changes: 1 addition & 1 deletion lib/wework/api/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ def token_params

end
end
end
end
14 changes: 14 additions & 0 deletions lib/wework/api/methods/agent.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,20 @@ def get_jssign_package url
}
end

def get_agent_jssign_package url
timestamp = Time.now.to_i
noncestr = SecureRandom.hex(8)
str = "jsapi_ticket=#{jsapi_agent_ticket}&noncestr=#{noncestr}&timestamp=#{timestamp}&url=#{url}"
{
"appId" => corp_id,
"nonceStr" => noncestr,
"timestamp" => timestamp,
"url" => url,
"signature" => Digest::SHA1.hexdigest(str),
"rawString" => str
}
end

def get_session_with_jscode(js_code, grant_type='authorization_code')
post 'miniprogram/jscode2session', {}, params: {js_code: js_code, grant_type: grant_type}
end
Expand Down
4 changes: 2 additions & 2 deletions lib/wework/api/methods/message.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ module Wework
module Api
module Methods
module Message
def miniprogram_message_send user_id, miniprogram_notice={}
post 'message/send', { touser: user_id, msgtype: 'miniprogram_notice', miniprogram_notice: miniprogram_notice }
def miniprogram_message_send user_id, miniprogram_notice={}, options={}
post 'message/send', { touser: user_id, msgtype: 'miniprogram_notice', miniprogram_notice: miniprogram_notice, **options }
end

def text_message_send user_ids, department_ids, content
Expand Down
14 changes: 13 additions & 1 deletion lib/wework/api/methods/provider.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,19 @@ def get_register_url template_id, options={}
register_code = get_register_code(template_id, options).register_code
"#{REGISTER_ENDPOINT}?register_code=#{register_code}"
end

def service_media_upload(type, file)
post_file 'service/media/upload', file, params: { type: type }
end

def id_translate auth_corpid, media_id
post 'service/contact/id_translate', { auth_corpid: auth_corpid, media_id_list: [ media_id ] }
end

def service_batch_getresult job_id
get 'service/batch/getresult', params: { jobid: job_id }
end
end
end
end
end
end
23 changes: 23 additions & 0 deletions lib/wework/token/js_agent_ticket.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
require 'wework/token/base'

module Wework
module Token
class JsAgentTicket < Base

alias_method :ticket, :token

def redis_key
@redis_key ||= Digest::MD5.hexdigest "WX_JS_AGENT_TICKET_#{client.corp_id}_#{client.agent_id}"
end

def token_key
'ticket'
end

def refresh_token
client.get 'ticket/get', params: { type: 'agent_config' }
end

end
end
end
4 changes: 1 addition & 3 deletions lib/wework/token/js_ticket.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
require 'wework/token/base'

require 'wework/token/base'

module Wework
module Token
class JsTicket < Base
Expand All @@ -22,4 +20,4 @@ def refresh_token

end
end
end
end
2 changes: 1 addition & 1 deletion lib/wework/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Wework
VERSION = '1.2.5'.freeze
VERSION = '1.2.6'.freeze
end

0 comments on commit bbc41d0

Please sign in to comment.