wechat-sns 0.3 → 0.4
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 +3 -0
- data/README.md +43 -2
- data/ROADMAP.md +3 -0
- data/lib/wechat/sns/access_token.rb +5 -5
- data/lib/wechat/sns/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e1243379a4457716883ee3744a2c8b617a8d0801
|
4
|
+
data.tar.gz: 9611bd6bb6e351571c364cf0166acbcce1e1e7e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2ac83a6c132dd7b6eb7b05fd10e2819757205564f1591dcf31447649cdaa5e60b4655a206ced0c7906d6430003b3068b208e338364d0e171aba6808773eaf5a6
|
7
|
+
data.tar.gz: 77faf0979f3346a05a85386ffad25aad19272007305457676524fbd339caee06efe5f9d2000e40c4bfadcda1e0e41c6f8006447bef89a920c7f5de953ac37c06
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -23,9 +23,50 @@ Or install it yourself as:
|
|
23
23
|
|
24
24
|
## Usage
|
25
25
|
|
26
|
-
Generate an
|
26
|
+
[Generate an Authorize URL and Redirect 第一步:用户同意授权,获取code](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)
|
27
27
|
```ruby
|
28
|
-
redirect_to Wechat::SNS::AuthorizeLink.create(Rails.application.secrets.wechat_app_id, 'http://
|
28
|
+
redirect_to Wechat::SNS::AuthorizeLink.create(Rails.application.secrets.wechat_app_id, 'http://product.company.com/promotion/page.html')
|
29
|
+
```
|
30
|
+
|
31
|
+
[Get Access Token per Code 第二步:通过code换取网页授权access_token](http://mp.weixin.qq.com/wiki/9/01f711493b5a02f24b04365ac5d8fd95.html#.E7.AC.AC.E4.BA.8C.E6.AD.A5.EF.BC.9A.E9.80.9A.E8.BF.87code.E6.8D.A2.E5.8F.96.E7.BD.91.E9.A1.B5.E6.8E.88.E6.9D.83access_token)
|
32
|
+
```ruby
|
33
|
+
response = Wechat::SNS::AccessToken.create Rails.application.secrets.wechat_app_id, Rails.application.secrets.wechat_app_secret, params[:code]
|
34
|
+
if response.present?
|
35
|
+
access_token = response['access_token']
|
36
|
+
expires_in = response['expires_in']
|
37
|
+
refresh_token = response['refresh_token']
|
38
|
+
open_id = response['openid']
|
39
|
+
scope = response['scope']
|
40
|
+
union_id = response['unionid']
|
41
|
+
end
|
42
|
+
```
|
43
|
+
|
44
|
+
[Refresh Access Token 第三步:刷新access_token(如果需要)](http://mp.weixin.qq.com/wiki/9/01f711493b5a02f24b04365ac5d8fd95.html#.E7.AC.AC.E4.B8.89.E6.AD.A5.EF.BC.9A.E5.88.B7.E6.96.B0access_token.EF.BC.88.E5.A6.82.E6.9E.9C.E9.9C.80.E8.A6.81.EF.BC.89)
|
45
|
+
```ruby
|
46
|
+
response = Wechat::SNS::AccessToken.update Rails.application.secrets.wechat_app_id, refresh_token
|
47
|
+
if response.present?
|
48
|
+
access_token = response['access_token']
|
49
|
+
expires_in = response['expires_in']
|
50
|
+
refresh_token = response['refresh_token']
|
51
|
+
open_id = response['openid']
|
52
|
+
scope = response['scope']
|
53
|
+
end
|
54
|
+
```
|
55
|
+
|
56
|
+
[Get User Profile per Access Token 第四步:拉取用户信息(需scope为 snsapi_userinfo)](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)
|
57
|
+
```ruby
|
58
|
+
response = Wechat::Sns::UserProfile.load access_token, open_id
|
59
|
+
if response.present? && response['errcode'].blank?
|
60
|
+
open_id = response['openid']
|
61
|
+
nick_name = response['nickname']
|
62
|
+
sex = response['sex']
|
63
|
+
city = response['city']
|
64
|
+
province = response['province']
|
65
|
+
country = response['country']
|
66
|
+
head_image_url = response['headimgurl']
|
67
|
+
privilege = response['privilege']
|
68
|
+
union_id = response['unionid']
|
69
|
+
end
|
29
70
|
```
|
30
71
|
|
31
72
|
## Development
|
data/ROADMAP.md
CHANGED
@@ -44,10 +44,10 @@ class Wechat::SNS::AccessToken
|
|
44
44
|
# errcode: <ERROR_CODE>,
|
45
45
|
# errmsg: <ERROR_MESSAGE>
|
46
46
|
# }
|
47
|
-
def self.update(refresh_token)
|
47
|
+
def self.update(app_id, refresh_token)
|
48
48
|
message = ::JSONClient.new.get 'https://api.weixin.qq.com/sns/oauth2/refresh_token',
|
49
49
|
{
|
50
|
-
appid:
|
50
|
+
appid: app_id,
|
51
51
|
grant_type: 'refresh_token',
|
52
52
|
refresh_token: refresh_token
|
53
53
|
}
|
@@ -72,11 +72,11 @@ class Wechat::SNS::AccessToken
|
|
72
72
|
# errcode: <ERROR_CODE>,
|
73
73
|
# errmsg: <ERROR_MESSAGE>
|
74
74
|
# }
|
75
|
-
def self.create(code)
|
75
|
+
def self.create(app_id, app_secret, code)
|
76
76
|
message = ::JSONClient.new.get 'https://api.weixin.qq.com/sns/oauth2/access_token',
|
77
77
|
{
|
78
|
-
appid:
|
79
|
-
secret:
|
78
|
+
appid: app_id,
|
79
|
+
secret: app_secret,
|
80
80
|
code: code,
|
81
81
|
grant_type: 'authorization_code'
|
82
82
|
}
|
data/lib/wechat/sns/version.rb
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: '0.
|
4
|
+
version: '0.4'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Topbit Du
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|