qqpush 0.0.6 → 0.0.7
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/README.md +23 -0
- data/Rakefile +4 -3
- data/lib/qqpush/android.rb +1 -0
- data/lib/qqpush/general.rb +13 -9
- data/lib/qqpush/ios.rb +1 -0
- data/lib/qqpush.rb +1 -0
- data/qqpush.gemspec +1 -1
- data/spec/general_spec.rb +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99d162dac56d32d724cb95101b085d973659a975
|
4
|
+
data.tar.gz: 1ef04859ed235272bcd08a55e96c52ebd3fec258
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f234c8258806e9768fd69f5d6cd3c75d9094ebaff5cd4e2ab0b9954993c2208a0388abd268b3023f055f6ff04b8f6ed54b5b5d55d46518b154efc337b7e68fb3
|
7
|
+
data.tar.gz: 626508cb87a0639899bba1a6cf69bf4c81ae52d40782c7d9c7732ca2572e719a9c2cfb6312455ec14150dfaf231f5c318351e425ad876ba90757b13df6576fb6
|
data/README.md
CHANGED
@@ -2,6 +2,29 @@
|
|
2
2
|
|
3
3
|
[](http://badge.fury.io/rb/qqpush)
|
4
4
|
|
5
|
+
## 示例
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
# iOS
|
9
|
+
message = QQpush::Ios.new(device_token: 'a123b', param_content: 'joe')
|
10
|
+
message.settings = { access_id: '555', secret_key: '888' }
|
11
|
+
message.request_params[:environment] = 1 if Rails.env.production?
|
12
|
+
message.push_single_device
|
13
|
+
|
14
|
+
# Android
|
15
|
+
message = QQpush::Android.new(
|
16
|
+
device_token: 'a123b', param_title: 'yo', param_content: 'joe')
|
17
|
+
message.settings = { access_id: '555', secret_key: '888' }
|
18
|
+
message.push_single_device
|
19
|
+
```
|
20
|
+
|
21
|
+
## 测试
|
22
|
+
|
23
|
+
```bash
|
24
|
+
$ rake init[your_access_id, your_secret_key]
|
25
|
+
$ rake test
|
26
|
+
```
|
27
|
+
|
5
28
|
## 参考链接
|
6
29
|
|
7
30
|
- [官网](http://xg.qq.com)
|
data/Rakefile
CHANGED
@@ -22,11 +22,12 @@ task :spec, :spec_name, :examples do |_t, args|
|
|
22
22
|
end
|
23
23
|
|
24
24
|
desc 'generate settings.yml'
|
25
|
-
task :init do
|
25
|
+
task :init, :access_id, :secret_key do |_t, args|
|
26
26
|
require 'yaml'
|
27
27
|
file = File.open('settings.yml', 'w+')
|
28
|
-
settings = { access_id:
|
29
|
-
file.puts '# http://developer.xg.qq.com/index.php/Rest_API'
|
28
|
+
settings = { access_id: args.access_id, secret_key: args.secret_key }.to_yaml
|
29
|
+
file.puts '# http://developer.xg.qq.com/index.php/Rest_API' \
|
30
|
+
'#.E9.80.9A.E7.94.A8.E5.8F.82.E6.95.B0'
|
30
31
|
file.puts settings
|
31
32
|
file.close
|
32
33
|
puts './settings.yml created.'
|
data/lib/qqpush/android.rb
CHANGED
data/lib/qqpush/general.rb
CHANGED
@@ -5,6 +5,7 @@ require 'json'
|
|
5
5
|
require 'yaml'
|
6
6
|
|
7
7
|
module QQpush
|
8
|
+
# General REST API
|
8
9
|
class General
|
9
10
|
attr_accessor :settings, :request_params
|
10
11
|
|
@@ -65,21 +66,24 @@ module QQpush
|
|
65
66
|
|
66
67
|
private
|
67
68
|
|
68
|
-
def business_params(params)
|
69
|
-
params.reject { |k, _v| k.to_s =~ /param_.*/ }
|
70
|
-
end
|
71
|
-
|
72
69
|
def params_string(params)
|
73
70
|
new_string = ''
|
74
|
-
|
71
|
+
business_params_string_keys(params).each do |key|
|
75
72
|
next unless params[key] || params[key.to_sym]
|
76
73
|
value = [params[key], params[key.to_sym]].compact.first
|
77
|
-
value = value
|
78
|
-
new_value =
|
79
|
-
|
80
|
-
new_string += "#{key}=#{new_value}" if new_value
|
74
|
+
value = param_string_value(value)
|
75
|
+
new_value = params[:param_encode] ? "#{URI.encode(value)}&" : value
|
76
|
+
new_string += "#{key}=#{new_value}"
|
81
77
|
end
|
82
78
|
new_string
|
83
79
|
end
|
80
|
+
|
81
|
+
def business_params_string_keys(params)
|
82
|
+
params.reject { |k, _v| k.to_s =~ /param_.*/ }.keys.map(&:to_s).sort
|
83
|
+
end
|
84
|
+
|
85
|
+
def param_string_value(value)
|
86
|
+
value.is_a?(Hash) ? value.to_json : value.to_s
|
87
|
+
end
|
84
88
|
end
|
85
89
|
end
|
data/lib/qqpush/ios.rb
CHANGED
data/lib/qqpush.rb
CHANGED
data/qqpush.gemspec
CHANGED
data/spec/general_spec.rb
CHANGED
@@ -7,9 +7,9 @@ describe 'General methods' do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'can generate sign by params' do
|
10
|
-
# http://developer.xg.qq.com/index.php/Rest_API
|
10
|
+
# http://developer.xg.qq.com/index.php/Rest_API#.E9.80.9A.E7.94.A8.E5.8F.82.E6.95.B0
|
11
11
|
@request.settings = { access_id: '123', secret_key: 'abcde' }
|
12
|
-
new_params = { timestamp: 1386691200, param_request: 'post',
|
12
|
+
new_params = { timestamp: '1386691200', param_request: 'post',
|
13
13
|
param_class: 'push', param_method: 'single_device',
|
14
14
|
'Param1' => 'Value1', 'Param2' => 'Value2' }
|
15
15
|
params = @request.general_params(new_params)
|