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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: feb8514ae121d06ffb939ed48de578fbf4772d55
4
- data.tar.gz: 4d29334931bdf43b6e214682f09bacf7bae6551d
3
+ metadata.gz: 8ae838c49f2360d96c8e796164ff1d1d6cf45256
4
+ data.tar.gz: 7aed1e56b6ee6b50d4722e1e6edad26d41e12e91
5
5
  SHA512:
6
- metadata.gz: 9b98760c30df6ac196d261fb0fc9be4afbe702161b52d67a159e5907fb49d38888edb71a0e4d21b13bb875ccea00158d7dd89bf017edb3c46744be8f1a2b16b8
7
- data.tar.gz: bb7ee269809961857a7b119a9bb1f4651f052b2c39d3ccda2af38a290bd5e90adbfefc114387e476cadcff7c7f9acf172efc7fd13fd67caea370037fa90024c1
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
@@ -1,3 +1,3 @@
1
1
  module WeChat
2
- VERSION = "0.5.15"
2
+ VERSION = "0.5.17"
3
3
  end
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.15
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-06 00:00:00.000000000 Z
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