we_chat 0.5.15 → 0.5.17
Sign up to get free protection for your applications and to get access to all the features.
- 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
|