wechat-sns 1.0 → 1.0.1
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/CHANGELOG.md +8 -1
- data/Gemfile.lock +1 -1
- data/README.md +4 -0
- data/ROADMAP.md +9 -2
- data/_config.yml +1 -0
- data/lib/wechat/sns/access_token.rb +15 -2
- data/lib/wechat/sns/authorize_link.rb +7 -0
- data/lib/wechat/sns/user_profile.rb +8 -1
- data/lib/wechat/sns/version.rb +1 -1
- data/wechat-sns.gemspec +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a92efbc1fdf7b1a981c97cf0d85bfe256b4bf40
|
4
|
+
data.tar.gz: 04d5e4501e77a1c55a34d43b7b1e6f243d2cc97b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1f6c63d59de095cb308292e4a51b44e4fb931f44887c00efe07b1b04ca781be77ccad44ecb0f0384993ca939e1ca43208a21de8e6064a36d926550d0c749fa0
|
7
|
+
data.tar.gz: 398b25ff51baa781c278db2b7eda7eb7de8ee0ca6d6b1cf80494549b6241d847d68b5b7bb7385150471b8aac857fe627e152b1317c559e1e63569c7ba09b8bd6
|
data/CHANGELOG.md
CHANGED
@@ -13,4 +13,11 @@
|
|
13
13
|
1. Improved Access Token wrapper class to paramiterize the Wechat App ID and Wechat App Secret
|
14
14
|
|
15
15
|
## v1.0
|
16
|
-
1. Improved the wrapper classes to use
|
16
|
+
1. Improved the wrapper classes to use Keyword Arguments
|
17
|
+
2. Improved the Ruby Gem Specification to depend on [wechat-core](https://github.com/topbitdu/wechat-core) v0.3
|
18
|
+
|
19
|
+
## v1.0.1
|
20
|
+
1. Improved the Ruby Gem Specification to depend on [wechat-core](https://github.com/topbitdu/wechat-core) v0.4
|
21
|
+
2. Improve the Access Token wrapper class for the argument validation & HTTP request
|
22
|
+
3. Improve the Authorize Link class for the argument validation
|
23
|
+
4. Improve the User Profile wrapper class for the argument validation & HTTP request
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -1,13 +1,17 @@
|
|
1
1
|
# Wechat SNS 微信社交库
|
2
2
|
|
3
|
+
[](http://www.rubydoc.info/gems/wechat-sns/frames)
|
3
4
|
[](http://opensource.org/licenses/MIT)
|
5
|
+
|
4
6
|
[](https://badge.fury.io/rb/wechat-sns)
|
7
|
+
[](https://gemnasium.com/github.com/topbitdu/wechat-sns)
|
5
8
|
|
6
9
|
Wechat SNS library is a low level library for Wechat SNS APIs. 微信社交库是一个调用[微信社交API](http://mp.weixin.qq.com/wiki/9/01f711493b5a02f24b04365ac5d8fd95.html)的低层库。
|
7
10
|
|
8
11
|
|
9
12
|
|
10
13
|
## Recent Update
|
14
|
+
|
11
15
|
Check out the [Road Map](ROADMAP.md) to find out what's the next.
|
12
16
|
Check out the [Change Log](CHANGELOG.md) to find out what's new.
|
13
17
|
|
data/ROADMAP.md
CHANGED
@@ -10,7 +10,14 @@
|
|
10
10
|
1. User Profile wrapper class
|
11
11
|
|
12
12
|
## v0.4
|
13
|
-
1.
|
13
|
+
1. Improve Access Token wrapper class to paramiterize the Wechat App ID and Wechat App Secret
|
14
14
|
|
15
15
|
## v1.0
|
16
|
-
1.
|
16
|
+
1. Improve the wrapper classes to support Keyword Arguments
|
17
|
+
2. Improve the Ruby Gem Specification to depend on [wechat-core](https://github.com/topbitdu/wechat-core) v0.3
|
18
|
+
|
19
|
+
## v1.0.1
|
20
|
+
1. Improve the Ruby Gem Specification to depend on [wechat-core](https://github.com/topbitdu/wechat-core) v0.4
|
21
|
+
2. Improve the Access Token wrapper class for the argument validation & HTTP request
|
22
|
+
3. Improve the Authorize Link class for the argument validation
|
23
|
+
4. Improve the User Profile wrapper class for the argument validation & HTTP request
|
data/_config.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
markdown: kramdown
|
@@ -2,7 +2,7 @@ require 'jsonclient'
|
|
2
2
|
|
3
3
|
class Wechat::SNS::AccessToken
|
4
4
|
|
5
|
-
|
5
|
+
extend Wechat::Core::Common
|
6
6
|
|
7
7
|
# 附:检验授权凭证(access_token)是否有效
|
8
8
|
# http://mp.weixin.qq.com/wiki/9/01f711493b5a02f24b04365ac5d8fd95.html#.E9.99.84.EF.BC.9A.E6.A3.80.E9.AA.8C.E6.8E.88.E6.9D.83.E5.87.AD.E8.AF.81.EF.BC.88access_token.EF.BC.89.E6.98.AF.E5.90.A6.E6.9C.89.E6.95.88
|
@@ -19,7 +19,12 @@ class Wechat::SNS::AccessToken
|
|
19
19
|
# errmsg: 'invalid openid'
|
20
20
|
# }
|
21
21
|
def self.load(access_token, opend_id)
|
22
|
-
|
22
|
+
|
23
|
+
assert_present! :access_token, access_token
|
24
|
+
assert_present! :opend_id, opend_id
|
25
|
+
#raise ArgumentError.new('The access_token argument is required.') if access_token.blank?
|
26
|
+
|
27
|
+
message = get_json 'https://api.weixin.qq.com/sns/auth', body:
|
23
28
|
{
|
24
29
|
access_token: access_token,
|
25
30
|
openid: opend_id
|
@@ -45,6 +50,11 @@ class Wechat::SNS::AccessToken
|
|
45
50
|
# errmsg: <ERROR_MESSAGE>
|
46
51
|
# }
|
47
52
|
def self.update(app_id, refresh_token)
|
53
|
+
|
54
|
+
assert_present! :app_id, app_id
|
55
|
+
assert_present! :refresh_token, refresh_token
|
56
|
+
# raise ArgumentError.new('The app_id argument is required.') if app_id.blank?
|
57
|
+
|
48
58
|
message = ::JSONClient.new.get 'https://api.weixin.qq.com/sns/oauth2/refresh_token',
|
49
59
|
{
|
50
60
|
appid: app_id,
|
@@ -73,6 +83,9 @@ class Wechat::SNS::AccessToken
|
|
73
83
|
# errmsg: <ERROR_MESSAGE>
|
74
84
|
# }
|
75
85
|
def self.create(app_id, app_secret, code, grant_type: 'authorization_code')
|
86
|
+
|
87
|
+
raise ArgumentError.new('The app_id argument is required.') if app_id.blank?
|
88
|
+
|
76
89
|
message = ::JSONClient.new.get 'https://api.weixin.qq.com/sns/oauth2/access_token',
|
77
90
|
{
|
78
91
|
appid: app_id,
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class Wechat::SNS::AuthorizeLink
|
2
2
|
|
3
|
+
extend Wechat::Core::Common
|
4
|
+
|
3
5
|
RESPONSE_TYPE_CODE = 'code'.freeze
|
4
6
|
SCOPE_BASE = 'snsapi_base'.freeze
|
5
7
|
SCOPE_FULL = 'snsapi_userinfo'.freeze
|
@@ -7,6 +9,11 @@ class Wechat::SNS::AuthorizeLink
|
|
7
9
|
# 第一步:用户同意授权,获取code
|
8
10
|
# http://mp.weixin.qq.com/wiki/9/01f711493b5a02f24b04365ac5d8fd95.html#.E7.AC.AC.E4.B8.80.E6.AD.A5.EF.BC.9A.E7.94.A8.E6.88.B7.E5.90.8C.E6.84.8F.E6.8E.88.E6.9D.83.EF.BC.8C.E8.8E.B7.E5.8F.96code
|
9
11
|
def self.create(wechat_app_id, redirect_link, response_type: Wechat::SNS::AuthorizeLink::RESPONSE_TYPE_CODE, scope: Wechat::SNS::AuthorizeLink::SCOPE_FULL, state: nil)
|
12
|
+
|
13
|
+
assert_present! :wechat_app_id, wechat_app_id
|
14
|
+
assert_present! :redirect_link, redirect_link
|
15
|
+
assert_present! :response_type, response_type
|
16
|
+
|
10
17
|
"https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{wechat_app_id}&redirect_uri=#{CGI::escape redirect_link}&response_type=#{response_type}&scope=#{scope}&state=#{state}#wechat_redirect"
|
11
18
|
end
|
12
19
|
|
@@ -2,6 +2,8 @@ require 'jsonclient'
|
|
2
2
|
|
3
3
|
class Wechat::SNS::UserProfile
|
4
4
|
|
5
|
+
extend Wechat::Core::Common
|
6
|
+
|
5
7
|
# 第四步:拉取用户信息(需scope为 snsapi_userinfo)
|
6
8
|
# http://mp.weixin.qq.com/wiki/9/01f711493b5a02f24b04365ac5d8fd95.html#.E7.AC.AC.E5.9B.9B.E6.AD.A5.EF.BC.9A.E6.8B.89.E5.8F.96.E7.94.A8.E6.88.B7.E4.BF.A1.E6.81.AF.28.E9.9C.80scope.E4.B8.BA_snsapi_userinfo.29
|
7
9
|
#
|
@@ -24,7 +26,12 @@ class Wechat::SNS::UserProfile
|
|
24
26
|
# errmsg: <ERROR_MESSAGE>
|
25
27
|
# }
|
26
28
|
def self.load(access_token, open_id, language: Wechat::Core::Common::LANGUAGE_SIMPLIFIED_CHINESE)
|
27
|
-
|
29
|
+
|
30
|
+
assert_present! :access_token, access_token
|
31
|
+
assert_present! :open_id, open_id
|
32
|
+
#raise ArgumentError.new('The access_token argument is required.') if access_token.blank?
|
33
|
+
|
34
|
+
message = get_json 'https://api.weixin.qq.com/sns/userinfo', body:
|
28
35
|
{
|
29
36
|
access_token: access_token,
|
30
37
|
openid: open_id,
|
data/lib/wechat/sns/version.rb
CHANGED
data/wechat-sns.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wechat-sns
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Topbit Du
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0.
|
61
|
+
version: '0.4'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0.
|
68
|
+
version: '0.4'
|
69
69
|
description: Wechat SNS Library is a wrapper for calling Wechat SNS APIs. 微信社交库封装了对微信社交API的调用。
|
70
70
|
email:
|
71
71
|
- topbit.du@gmail.com
|
@@ -84,6 +84,7 @@ files:
|
|
84
84
|
- README.md
|
85
85
|
- ROADMAP.md
|
86
86
|
- Rakefile
|
87
|
+
- _config.yml
|
87
88
|
- bin/console
|
88
89
|
- bin/setup
|
89
90
|
- lib/wechat/sns.rb
|