wework 1.1.3 → 1.1.5
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 +50 -4
- data/lib/wework/api/base.rb +3 -0
- data/lib/wework/api/contact.rb +0 -1
- data/lib/wework/api/corp.rb +0 -2
- data/lib/wework/api/methods/batch.rb +4 -0
- data/lib/wework/api/methods/crm.rb +11 -0
- data/lib/wework/api/methods/{suite.rb → service.rb} +1 -1
- data/lib/wework/api/methods/tag.rb +37 -0
- data/lib/wework/api/methods/user.rb +12 -0
- data/lib/wework/api/suite.rb +1 -1
- data/lib/wework/version.rb +1 -1
- data/wework.gemspec +5 -5
- metadata +15 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e3ed7c0371d7411dba8f0b23e88e220add94c7d30c4c3d2a5b56fd0e175460a
|
4
|
+
data.tar.gz: 389d38ad1070a6a15133aba8899029fd3dea09fabfe5aec29728d3ae09beac94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f118fe5ecd90f0bba3aea25b3f7c91a59e7d19253ee5935982d969ae9462407bea1d699a265da936d398880784f442952e8986e831c127317f2324ee99ef8863
|
7
|
+
data.tar.gz: eeb901426c8a76ad7114a4d0b0c1016bc5fc2b92a6dda6663782b0c4ab66efaff4ea253f69053e9ced266f52345cdf1a50660994dd31418fe755852d5efd4947
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
#
|
1
|
+
# Wechat Work 「企业微信 API」
|
2
2
|
|
3
|
-
Wework is a ruby API wrapper for work
|
3
|
+
Wework is a ruby API wrapper for wechat work「企业微信」.
|
4
4
|
|
5
|
-
[](https://circleci.com/gh/mycolorway/wework/tree/suite)
|
5
|
+
[](https://circleci.com/gh/mycolorway/wework/tree/suite) [](https://badge.fury.io/rb/wework)
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -46,6 +46,33 @@ agent_api = $wework_suite.corp(
|
|
46
46
|
)
|
47
47
|
```
|
48
48
|
|
49
|
+
3). 第三方应用回调协议
|
50
|
+
|
51
|
+
获取加密数据
|
52
|
+
|
53
|
+
```ruby
|
54
|
+
encrypt_str = if params[:xml].present?
|
55
|
+
params[:xml]['Encrypt']
|
56
|
+
else
|
57
|
+
Hash.from_xml(request.raw_post)['xml']['Encrypt']
|
58
|
+
end
|
59
|
+
|
60
|
+
#首次校验接口 encrpt_str = params[:echostr]
|
61
|
+
```
|
62
|
+
|
63
|
+
消息签名
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
$wework_suite.signature(timestamp, nonce, encrypt_str)
|
67
|
+
```
|
68
|
+
|
69
|
+
消息解密
|
70
|
+
|
71
|
+
```ruby
|
72
|
+
$wework_suite.msg_decrypt(encrypt_data)
|
73
|
+
```
|
74
|
+
|
75
|
+
|
49
76
|
#### 自建应用
|
50
77
|
|
51
78
|
初始化接口 [Wework::Api::Agent](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/agent.rb)
|
@@ -80,6 +107,21 @@ $provider_api = Wework::Api::Provider.new(
|
|
80
107
|
)
|
81
108
|
```
|
82
109
|
|
110
|
+
#### 小程序 encryptedData 解密
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
require "openssl"
|
114
|
+
CIPHER = 'AES-128-CBC'.freeze
|
115
|
+
|
116
|
+
cipher = OpenSSL::Cipher.new(CIPHER)
|
117
|
+
cipher.decrypt
|
118
|
+
cipher.key = Base64.decode64(session_key)
|
119
|
+
cipher.iv = Base64.decode64(iv)
|
120
|
+
encrypted = Base64.decode64(encryptedData)
|
121
|
+
data = cipher.update(encrypted) + cipher.final
|
122
|
+
values = JSON.parse data
|
123
|
+
```
|
124
|
+
|
83
125
|
|
84
126
|
## Methods
|
85
127
|
|
@@ -87,6 +129,8 @@ $provider_api = Wework::Api::Provider.new(
|
|
87
129
|
|
88
130
|
[Wework::Api::Methods::User](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/user.rb)
|
89
131
|
|
132
|
+
[Wework::Api::Methods::Tag](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/tag.rb)
|
133
|
+
|
90
134
|
[Wework::Api::Methods::Department](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/department.rb)
|
91
135
|
|
92
136
|
[Wework::Api::Methods::Message](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/message.rb)
|
@@ -99,9 +143,11 @@ $provider_api = Wework::Api::Provider.new(
|
|
99
143
|
|
100
144
|
[Wework::Api::Methods::Checkin](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/checkin.rb)
|
101
145
|
|
146
|
+
[Wework::Api::Methods::Batch](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/batch.rb)
|
147
|
+
|
102
148
|
[Wework::Api::Methods::Provider](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/provider.rb)
|
103
149
|
|
104
|
-
[Wework::Api::Methods::
|
150
|
+
[Wework::Api::Methods::Service](https://github.com/mycolorway/wework/blob/suite/lib/wework/api/methods/service.rb)
|
105
151
|
|
106
152
|
|
107
153
|
## Contributing
|
data/lib/wework/api/base.rb
CHANGED
data/lib/wework/api/contact.rb
CHANGED
data/lib/wework/api/corp.rb
CHANGED
@@ -18,6 +18,10 @@ module Wework
|
|
18
18
|
get 'batch/getresult', params: {jobid: job_id}
|
19
19
|
end
|
20
20
|
|
21
|
+
def batch_invite user=[], party=[], tag=[]
|
22
|
+
post 'batch/invite', {user: user, party: party, tag: tag}
|
23
|
+
end
|
24
|
+
|
21
25
|
private
|
22
26
|
|
23
27
|
def batch_params media_id, callback_url, token, encodingaeskey
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Wework
|
2
2
|
module Api
|
3
3
|
module Methods
|
4
|
-
module
|
4
|
+
module Service
|
5
5
|
def corp_authorize_url(redirect_uri, state="corp_authorize")
|
6
6
|
"#{APP_AUTHORIZE_ENDPOINT}?suite_id=#{suite_id}&pre_auth_code=#{get_pre_auth_code}&redirect_uri=#{redirect_uri}&state=#{state}"
|
7
7
|
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Wework
|
2
|
+
module Api
|
3
|
+
module Methods
|
4
|
+
module Tag
|
5
|
+
def tag_create(tagname, tagid=nil)
|
6
|
+
data = {tagname: tagname}
|
7
|
+
data[:tagid] = tagid unless tagid.nil?
|
8
|
+
post 'tag/create', data
|
9
|
+
end
|
10
|
+
|
11
|
+
def tag_update(tagid, tagname)
|
12
|
+
post 'tag/update', {tagid: tagid, tagname: tagname}
|
13
|
+
end
|
14
|
+
|
15
|
+
def tag_delete tagid
|
16
|
+
get 'user/delete', params: {tagid: tagid}
|
17
|
+
end
|
18
|
+
|
19
|
+
def tag_get tagid
|
20
|
+
get 'user/get', params: {tagid: tagid}
|
21
|
+
end
|
22
|
+
|
23
|
+
def tag_addtagusers tagid, userlist=[], partylist=[]
|
24
|
+
post 'tag/addtagusers', {tagid: tagid, userlist: userlist, partylist: partylist}
|
25
|
+
end
|
26
|
+
|
27
|
+
def tag_deltagusers tagid, userlist=[], partylist=[]
|
28
|
+
post 'tag/deltagusers', {tagid: tagid, userlist: userlist, partylist: partylist}
|
29
|
+
end
|
30
|
+
|
31
|
+
def tag_list
|
32
|
+
get 'user/list'
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -29,6 +29,18 @@ module Wework
|
|
29
29
|
def user_list department_id, fetch_child=0
|
30
30
|
get 'user/list', params: {department_id: department_id, fetch_child: fetch_child}
|
31
31
|
end
|
32
|
+
|
33
|
+
def convert_to_openid userid
|
34
|
+
post 'user/convert_to_openid', {userid: userid}
|
35
|
+
end
|
36
|
+
|
37
|
+
def convert_to_userid openid
|
38
|
+
post 'user/convert_to_userid', {openid: openid}
|
39
|
+
end
|
40
|
+
|
41
|
+
def authsucc userid
|
42
|
+
get 'user/authsucc', params: {userid: userid}
|
43
|
+
end
|
32
44
|
end
|
33
45
|
end
|
34
46
|
end
|
data/lib/wework/api/suite.rb
CHANGED
data/lib/wework/version.rb
CHANGED
data/wework.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["seandong"]
|
10
10
|
spec.email = ["sindon@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = spec.description = %q{Ruby API wrapper for work
|
12
|
+
spec.summary = spec.description = %q{Ruby API wrapper for wechat work「企业微信」}
|
13
13
|
spec.homepage = "https://github.com/mycolorway/wework"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -23,12 +23,12 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_dependency 'http', '>= 2.2'
|
24
24
|
spec.add_dependency 'activesupport', '~> 5.0'
|
25
25
|
spec.add_dependency 'redis', '~>3.3'
|
26
|
-
spec.add_dependency 'builder', '~> 3.2
|
27
|
-
spec.add_dependency 'sinatra', '~>2.0
|
26
|
+
spec.add_dependency 'builder', '~> 3.2'
|
27
|
+
spec.add_dependency 'sinatra', '~> 2.0'
|
28
28
|
|
29
29
|
spec.add_development_dependency "bundler", "~> 1.13"
|
30
30
|
spec.add_development_dependency "rake", "~> 10.0"
|
31
31
|
spec.add_development_dependency "minitest", "~> 5.10"
|
32
|
-
spec.add_development_dependency 'webmock', '~> 3.4
|
33
|
-
spec.add_development_dependency 'mock_redis', '~>0.18
|
32
|
+
spec.add_development_dependency 'webmock', '~> 3.4'
|
33
|
+
spec.add_development_dependency 'mock_redis', '~>0.18'
|
34
34
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- seandong
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.2
|
61
|
+
version: '3.2'
|
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: 3.2
|
68
|
+
version: '3.2'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sinatra
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.0
|
75
|
+
version: '2.0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.0
|
82
|
+
version: '2.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,29 +128,29 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 3.4
|
131
|
+
version: '3.4'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 3.4
|
138
|
+
version: '3.4'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: mock_redis
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.18
|
145
|
+
version: '0.18'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.18
|
153
|
-
description: Ruby API wrapper for work
|
152
|
+
version: '0.18'
|
153
|
+
description: Ruby API wrapper for wechat work「企业微信」
|
154
154
|
email:
|
155
155
|
- sindon@gmail.com
|
156
156
|
executables: []
|
@@ -175,12 +175,14 @@ files:
|
|
175
175
|
- lib/wework/api/methods/approval.rb
|
176
176
|
- lib/wework/api/methods/batch.rb
|
177
177
|
- lib/wework/api/methods/checkin.rb
|
178
|
+
- lib/wework/api/methods/crm.rb
|
178
179
|
- lib/wework/api/methods/department.rb
|
179
180
|
- lib/wework/api/methods/media.rb
|
180
181
|
- lib/wework/api/methods/menu.rb
|
181
182
|
- lib/wework/api/methods/message.rb
|
182
183
|
- lib/wework/api/methods/provider.rb
|
183
|
-
- lib/wework/api/methods/
|
184
|
+
- lib/wework/api/methods/service.rb
|
185
|
+
- lib/wework/api/methods/tag.rb
|
184
186
|
- lib/wework/api/methods/user.rb
|
185
187
|
- lib/wework/api/provider.rb
|
186
188
|
- lib/wework/api/suite.rb
|
@@ -250,5 +252,5 @@ rubyforge_project:
|
|
250
252
|
rubygems_version: 2.7.6
|
251
253
|
signing_key:
|
252
254
|
specification_version: 4
|
253
|
-
summary: Ruby API wrapper for work
|
255
|
+
summary: Ruby API wrapper for wechat work「企业微信」
|
254
256
|
test_files: []
|