yol_qy_weixin 0.0.3 → 0.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/Gemfile.lock +1 -1
- data/README.md +60 -41
- data/lib/yol_qy_weixin/client.rb +1 -1
- data/lib/yol_qy_weixin/connections/base.rb +16 -20
- data/lib/yol_qy_weixin/connections/user.rb +8 -0
- data/lib/yol_qy_weixin/version.rb +1 -1
- data/yol_qy_weixin.gemspec +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16810fce99de51f9a49c445ca9e00d4c79f0fe207956e37730e49f457080103f
|
4
|
+
data.tar.gz: f9b822c1704f8736b878b5535992814f4a68e341a80d809edbca4a0a813b14b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ad1d2656261536b48e87c23d7e448fe3be79dda0f7c061c24d8b4570b3608cdae0e3163c374723c74561a8a36527220ca7be5490c46d1903c588a31d9a20d06
|
7
|
+
data.tar.gz: 14de072312d66e3bab849bfaed5e0dac430ca8b8101ddd0ec19840379e2b504c5876e6397f73611adb57baa506b969d1e4763ab1f223242a0097ca492b3779df
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -6,76 +6,95 @@ https://rubygems.org/gems/yol_qy_weixin
|
|
6
6
|
|
7
7
|
[](http://badge.fury.io/rb/yol_qy_weixin)
|
8
8
|
|
9
|
-
**企业号对应多个管理组,请前往 `设置` => `权限管理` 任意创建一个管理组,在管理组最下角即可获取 CorpID Secret**
|
10
|
-
|
11
9
|
**有问题请及时提issue**
|
12
10
|
|
13
11
|
```ruby
|
14
|
-
gem "
|
12
|
+
gem "yol_qy_weixin", git: "https://github.com/luojie2019/yol_qy_weixin.git"
|
15
13
|
```
|
16
14
|
|
17
15
|
# 配置
|
18
16
|
|
19
|
-
##
|
20
|
-
|
17
|
+
## 安装依赖Installation
|
18
|
+
|
19
|
+
Add this line to your application's Gemfile:
|
20
|
+
|
21
21
|
```ruby
|
22
|
-
|
23
|
-
config.cache_store = YourCustomCacheStore
|
24
|
-
end
|
22
|
+
gem 'yol_qy_weixin'
|
25
23
|
```
|
26
|
-
|
24
|
+
## 配置 corpid secret
|
27
25
|
|
28
|
-
## 日志配置
|
29
|
-
如果你是在Rails框架下,默认情况下直接使用Rails.logger,如果你想独立cache,请配置如下:
|
30
26
|
```ruby
|
31
|
-
|
32
|
-
config.logger = YourCustomLogger
|
33
|
-
end
|
34
|
-
```
|
35
|
-
logger按照Rails.logger的接口实现,强烈建议使用ActiveSupport::Logger
|
27
|
+
# 目录
|
36
28
|
|
37
|
-
|
29
|
+
file: your_project/config/qy_weixin.yml
|
38
30
|
|
39
|
-
|
40
|
-
|
31
|
+
.your_project/
|
32
|
+
├── app
|
33
|
+
├── bin
|
34
|
+
├── config
|
35
|
+
│ ├── redis.yml
|
36
|
+
│ ├── database.yml
|
37
|
+
│ ├── qy_weixin.yml
|
38
|
+
```
|
41
39
|
|
42
|
-
|
43
|
-
|
44
|
-
|
40
|
+
```yml
|
41
|
+
defaults: &defaults
|
42
|
+
corpid: '1**'
|
43
|
+
secret: '2**'
|
45
44
|
|
46
|
-
|
45
|
+
development: &development
|
46
|
+
<<: *defaults
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
exist_keys.each{|key|redis.del(key)}
|
48
|
+
test:
|
49
|
+
<<: *defaults
|
51
50
|
|
52
|
-
|
51
|
+
production:
|
52
|
+
corpid: <%= ENV.fetch('QY_WEIXIN_CORPID') { '1**'' } %>
|
53
|
+
secret: <%= ENV.fetch('QY_WEIXIN_SECRET') { '2**'' } %>
|
54
|
+
```
|
53
55
|
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
## 读取配置
|
57
|
+
```ruby
|
58
|
+
# 读取qy_weixin.yml配置
|
59
|
+
qy_weixin_config = YAML::load(ERB.new(File.read("#{Rails.root}/config/qy_weixin.yml")).result)[Rails.env]
|
57
60
|
```
|
61
|
+
如果你是在Rails框架下,也可以使用Settingslogic读取yml配置:
|
62
|
+
```ruby
|
63
|
+
# 引用gem
|
64
|
+
gem 'settingslogic', '2.0.9'
|
65
|
+
|
66
|
+
# your_project/app/settings/weixin_setting.rb
|
67
|
+
class WeixinSetting < Settingslogic
|
68
|
+
source "#{Rails.root}/config/weixin.yml"
|
69
|
+
namespace Rails.env
|
70
|
+
end
|
58
71
|
|
59
|
-
|
72
|
+
corpid = WeixinSetting.corpid
|
73
|
+
corp_secret = WeixinSetting.secret
|
74
|
+
```
|
60
75
|
|
61
|
-
|
76
|
+
**说明:redis配置请参考官方文档https://github.com/redis/redis-rb/blob/master/README.md**
|
62
77
|
|
63
|
-
##
|
78
|
+
## 实例对象
|
64
79
|
|
65
80
|
```ruby
|
66
|
-
|
81
|
+
# 目录 file: your_project/config/initializers/qy_weixin.rb
|
67
82
|
|
68
|
-
|
69
|
-
|
83
|
+
QyWexinClient = YolQyWeixin::Client.new(
|
84
|
+
corpid: qy_weixin_config["corpid"],
|
85
|
+
secret: qy_weixin_config["secret"],
|
86
|
+
redis: RedisClient
|
87
|
+
)
|
70
88
|
```
|
71
89
|
|
72
|
-
|
73
|
-
|
90
|
+
|
91
|
+
# 基本用法
|
92
|
+
|
93
|
+
如果需要获取的 access_token
|
74
94
|
|
75
95
|
```ruby
|
76
|
-
|
77
|
-
#
|
78
|
-
group_client = QyWechatApi::Client.new(corpid, corpsecret, options)
|
96
|
+
access_token = QyWexinClient.get_access_token
|
97
|
+
# 对应企业微信官方文档:https://work.weixin.qq.com/api/doc/90000/90135/91039
|
79
98
|
```
|
80
99
|
|
81
100
|
## 部门
|
data/lib/yol_qy_weixin/client.rb
CHANGED
@@ -18,26 +18,22 @@ module YolQyWeixin
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def get_access_token
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
# access_token
|
39
|
-
access_token_res = get_token(corpid, secret)
|
40
|
-
access_token = access_token_res["access_token"] rescue nil
|
21
|
+
if redis.nil?
|
22
|
+
access_token_res = get_token(corpid, secret)
|
23
|
+
access_token = access_token_res["access_token"] rescue nil
|
24
|
+
else
|
25
|
+
access_token = redis.get("qywx_access_token")
|
26
|
+
if access_token.nil?
|
27
|
+
access_token_res = get_token(corpid, secret)
|
28
|
+
access_token = access_token_res["access_token"] rescue nil
|
29
|
+
if access_token.nil?
|
30
|
+
raise Exception.new("QyWeixin access token authorize false, corpid: #{corpid}")
|
31
|
+
else
|
32
|
+
redis.set("qywx_access_token", access_token)
|
33
|
+
redis.expire("qywx_access_token", 7200)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
41
37
|
access_token
|
42
38
|
end
|
43
39
|
|
@@ -1,12 +1,20 @@
|
|
1
1
|
module YolQyWeixin
|
2
2
|
module Connection
|
3
3
|
module User
|
4
|
+
def get_user_id(code)
|
5
|
+
http_get(user_info_url(open_id))
|
6
|
+
end
|
7
|
+
|
4
8
|
def get_user_info(open_id)
|
5
9
|
http_get(user_info_url(open_id))
|
6
10
|
end
|
7
11
|
|
8
12
|
private
|
9
13
|
|
14
|
+
def user_id_url(code)
|
15
|
+
"https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=#{get_access_token}&code=#{code}"
|
16
|
+
end
|
17
|
+
|
10
18
|
def user_info_url(open_id)
|
11
19
|
"https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=#{get_access_token}&userid=#{open_id}"
|
12
20
|
end
|
data/yol_qy_weixin.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'yol_qy_weixin/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "yol_qy_weixin"
|
8
8
|
spec.version = YolQyWeixin::VERSION
|
9
|
-
spec.authors = ["
|
10
|
-
spec.email = ["
|
9
|
+
spec.authors = ["luojie2019"]
|
10
|
+
spec.email = ["luojie@yolanda.hk"]
|
11
11
|
spec.summary = %q{Shop middleware for Weixin.}
|
12
12
|
spec.description = ""
|
13
13
|
spec.homepage = ""
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yol_qy_weixin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- luojie2019
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -82,7 +82,7 @@ dependencies:
|
|
82
82
|
version: '0'
|
83
83
|
description: ''
|
84
84
|
email:
|
85
|
-
-
|
85
|
+
- luojie@yolanda.hk
|
86
86
|
executables: []
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|