we_chat 0.5.15 → 0.5.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/tasks/we_chat/js_ticket.rake +25 -0
- data/lib/we_chat.rb +5 -0
- data/lib/we_chat/js_ticket.rb +54 -0
- data/lib/we_chat/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ae838c49f2360d96c8e796164ff1d1d6cf45256
|
4
|
+
data.tar.gz: 7aed1e56b6ee6b50d4722e1e6edad26d41e12e91
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a437fd34074b0f0eff7186c3f553746c3532083939a0338fb14e5378803c1451d76f6a0181b6e47fe49125746d8b4a0b3ef81fa5de31f7b90c08d97b62663532
|
7
|
+
data.tar.gz: f21c95fe3af8f914ce29e612137d56a2607aa3fce0e667548fb136469a3c1e2b3abd52769a02c681d931e6b5efda23e4177a858fb6880cc0ef6f96f0790d9871
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# desc "Explaining what the task does"
|
2
|
+
# task :we_chat do
|
3
|
+
# # Task goes here
|
4
|
+
# end
|
5
|
+
|
6
|
+
require 'we_chat'
|
7
|
+
|
8
|
+
namespace :we_chat do
|
9
|
+
namespace :js_ticket do
|
10
|
+
task :refresh => :environment do
|
11
|
+
if defined?(Rails) && (Rails.env == 'development')
|
12
|
+
Rails.logger = Logger.new(STDOUT)
|
13
|
+
end
|
14
|
+
|
15
|
+
js_ticket = WeChat::JsTicket.new(
|
16
|
+
WeChat::REST::Client.new,
|
17
|
+
WeChat::AccessToken.get_access_token,
|
18
|
+
WeChat.wechat_js_ticket_file_path
|
19
|
+
)
|
20
|
+
js_ticket.retrieve
|
21
|
+
|
22
|
+
Rails.logger.info "* [JS_TICKET]#{js_ticket.value}"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/we_chat.rb
CHANGED
@@ -3,6 +3,7 @@ require 'we_chat/messaging/message_validator'
|
|
3
3
|
require 'we_chat/messaging/responder'
|
4
4
|
require 'we_chat/rest/client'
|
5
5
|
require 'we_chat/access_token'
|
6
|
+
require 'we_chat/js_ticket'
|
6
7
|
|
7
8
|
require 'we_chat/acts_as_we_chat_entity'
|
8
9
|
|
@@ -39,6 +40,10 @@ module WeChat
|
|
39
40
|
mattr_accessor :wechat_access_token_file_path
|
40
41
|
@@wechat_access_token_file_path = 'public/system/wechat_access_token'
|
41
42
|
|
43
|
+
# The default WeChat API js ticket file path
|
44
|
+
mattr_accessor :wechat_js_ticket_file_path
|
45
|
+
@@wechat_js_ticket_file_path = 'public/system/wechat_js_ticket'
|
46
|
+
|
42
47
|
def self.setup
|
43
48
|
yield self
|
44
49
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'we_chat/rest/utils'
|
2
|
+
require 'we_chat/rest/request'
|
3
|
+
require 'we_chat/symbolizable'
|
4
|
+
|
5
|
+
module WeChat
|
6
|
+
class JsTicket
|
7
|
+
include WeChat::REST::Utils
|
8
|
+
include WeChat::Symbolizable
|
9
|
+
|
10
|
+
attr_reader :client, :access_token, :js_ticket_file, :js_ticket_data
|
11
|
+
|
12
|
+
def initialize(client, access_token, js_ticket_file)
|
13
|
+
@client = client
|
14
|
+
@access_token = access_token
|
15
|
+
@js_ticket_file = js_ticket_file
|
16
|
+
end
|
17
|
+
|
18
|
+
def retrieve
|
19
|
+
response = WeChat::REST::Request.new(client, :get, '/ticket/getticket',
|
20
|
+
params: {
|
21
|
+
type: 'jsapi',
|
22
|
+
access_token: access_token
|
23
|
+
}).perform
|
24
|
+
|
25
|
+
File.open(js_ticket_file, 'w') { |file| file.write(response.to_json) } if valid?(response)
|
26
|
+
return @js_ticket_data = response
|
27
|
+
end
|
28
|
+
|
29
|
+
def value
|
30
|
+
begin
|
31
|
+
@js_ticket_data ||= symbolize_keys!(JSON.parse(File.read(js_ticket_file)))
|
32
|
+
rescue => e
|
33
|
+
Rails.logger.debug e
|
34
|
+
retrieve
|
35
|
+
end
|
36
|
+
@js_ticket_data[:ticket]
|
37
|
+
end
|
38
|
+
|
39
|
+
def valid?(data)
|
40
|
+
ticket = data.nil? ? '' : data[:ticket]
|
41
|
+
!ticket.blank?
|
42
|
+
end
|
43
|
+
|
44
|
+
class << self
|
45
|
+
|
46
|
+
def get_js_ticket(file_path = nil)
|
47
|
+
file_path ||= WeChat.wechat_js_ticket_file_path
|
48
|
+
data = JSON.parse(File.read(file_path))
|
49
|
+
data["ticket"]
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/lib/we_chat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: we_chat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- babaru
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -194,6 +194,7 @@ files:
|
|
194
194
|
- app/views/layouts/we_chat/application.html.erb
|
195
195
|
- config/routes.rb
|
196
196
|
- lib/tasks/we_chat/access_token.rake
|
197
|
+
- lib/tasks/we_chat/js_ticket.rake
|
197
198
|
- lib/we_chat.rb
|
198
199
|
- lib/we_chat/access_token.rb
|
199
200
|
- lib/we_chat/acts_as_we_chat_entity.rb
|
@@ -209,6 +210,7 @@ files:
|
|
209
210
|
- lib/we_chat/entity/retriever.rb
|
210
211
|
- lib/we_chat/error.rb
|
211
212
|
- lib/we_chat/headers.rb
|
213
|
+
- lib/we_chat/js_ticket.rb
|
212
214
|
- lib/we_chat/menu.rb
|
213
215
|
- lib/we_chat/messaging/message.rb
|
214
216
|
- lib/we_chat/messaging/message_validator.rb
|