wework 1.2.0 → 1.2.8
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 +2 -0
- data/lib/wework.rb +3 -2
- data/lib/wework/api/agent.rb +3 -1
- data/lib/wework/api/methods/agent.rb +5 -0
- data/lib/wework/api/methods/appchat.rb +62 -0
- data/lib/wework/api/methods/message.rb +1 -2
- data/lib/wework/api/methods/user.rb +4 -0
- data/lib/wework/api/provider.rb +0 -8
- data/lib/wework/api/suite.rb +1 -2
- data/lib/wework/cipher.rb +8 -0
- data/lib/wework/request.rb +1 -1
- data/lib/wework/version.rb +1 -1
- data/wework.gemspec +3 -3
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2370a71d7a4ebb3f04257eee4d1573748cfcc5e15ade5931a973d8abcfbe790b
|
4
|
+
data.tar.gz: 9340553291b76e20b4f8db91caeadd7455cd11489a78e45f210d2e5a60e02e02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2100dbeb253d7fd17723c440d016f24510ef8215145099bbbf9c80b46411f52089b2cdbf8bf36c458dc21e1266d753945def2c83bbc052773f5dbee78048ee15
|
7
|
+
data.tar.gz: 4f7ce15118f59d0843e97e9fbd2adfec40b638fe02dc6e46ea2e00b36d9c97179f78f8b2681e30dc67e400b3e0cf03d5f0179e22d4cc9d02f7373c689134091c
|
data/README.md
CHANGED
@@ -152,6 +152,8 @@ values = JSON.parse data
|
|
152
152
|
|
153
153
|
[Wework::Api::Methods::Message](https://github.com/mycolorway/wework/blob/master/lib/wework/api/methods/message.rb)
|
154
154
|
|
155
|
+
[Wework::Api::Methods::Appchat](https://github.com/mycolorway/wework/blob/master/lib/wework/api/methods/appchat.rb)
|
156
|
+
|
155
157
|
[Wework::Api::Methods::Media](https://github.com/mycolorway/wework/blob/master/lib/wework/api/methods/media.rb)
|
156
158
|
|
157
159
|
[Wework::Api::Methods::Menu](https://github.com/mycolorway/wework/blob/master/lib/wework/api/methods/menu.rb)
|
data/lib/wework.rb
CHANGED
@@ -2,8 +2,8 @@ require 'redis'
|
|
2
2
|
require 'active_support/all'
|
3
3
|
#require 'active_support/core_ext/object/blank'
|
4
4
|
|
5
|
-
|
6
|
-
Dir["#{
|
5
|
+
lib_path = "#{File.dirname(__FILE__)}/wework"
|
6
|
+
Dir["#{lib_path}/api/methods/*.rb", "#{lib_path}/token/*.rb"].each { |path| require path }
|
7
7
|
|
8
8
|
require 'wework/version'
|
9
9
|
require 'wework/cipher'
|
@@ -20,6 +20,7 @@ module Wework
|
|
20
20
|
API_ENDPOINT = 'https://qyapi.weixin.qq.com/cgi-bin/'.freeze
|
21
21
|
AUTHORIZE_ENDPOINT = 'https://open.weixin.qq.com/connect/oauth2/authorize'.freeze
|
22
22
|
SSO_AUTHORIZE_ENDPOINT = 'https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect'.freeze
|
23
|
+
AGENT_SSO_AUTHORIZE_ENDPOINT = 'https://open.work.weixin.qq.com/wwopen/sso/qrConnect'.freeze
|
23
24
|
APP_AUTHORIZE_ENDPOINT = 'https://open.work.weixin.qq.com/3rdapp/install'.freeze
|
24
25
|
REGISTER_ENDPOINT = 'https://open.work.weixin.qq.com/3rdservice/wework/register'.freeze
|
25
26
|
HTTP_OK_STATUS = [200, 201].freeze
|
data/lib/wework/api/agent.rb
CHANGED
@@ -4,9 +4,11 @@ module Wework
|
|
4
4
|
|
5
5
|
include Methods::Agent
|
6
6
|
include Methods::Message
|
7
|
+
include Methods::Appchat
|
7
8
|
include Methods::Menu
|
8
9
|
include Methods::Checkin
|
9
10
|
include Methods::Approval
|
11
|
+
include Wework::Cipher
|
10
12
|
|
11
13
|
attr_reader :agent_id
|
12
14
|
|
@@ -27,4 +29,4 @@ module Wework
|
|
27
29
|
end
|
28
30
|
end
|
29
31
|
end
|
30
|
-
end
|
32
|
+
end
|
@@ -4,6 +4,11 @@ module Wework
|
|
4
4
|
module Api
|
5
5
|
module Methods
|
6
6
|
module Agent
|
7
|
+
def sso_authorize_url(redirect_uri, state='qrconnect')
|
8
|
+
uri = ERB::Util.url_encode(redirect_uri)
|
9
|
+
"#{AGENT_SSO_AUTHORIZE_ENDPOINT}?appid=#{corp_id}&agentid=#{agent_id}&redirect_uri=#{uri}&state=#{state}"
|
10
|
+
end
|
11
|
+
|
7
12
|
def authorize_url(redirect_uri, scope="snsapi_base", state="wxwork")
|
8
13
|
# user agent: UA is mozilla/5.0 (iphone; cpu iphone os 10_2 like mac os x) applewebkit/602.3.12 (khtml, like gecko) mobile/14c92 wxwork/1.3.2 micromessenger/6.2
|
9
14
|
uri = ERB::Util.url_encode(redirect_uri)
|
@@ -0,0 +1,62 @@
|
|
1
|
+
require "erb"
|
2
|
+
|
3
|
+
module Wework
|
4
|
+
module Api
|
5
|
+
module Methods
|
6
|
+
module Appchat
|
7
|
+
|
8
|
+
def appchat_create group_name, owner_id, group_user_ids, chat_id
|
9
|
+
post 'appchat/create',
|
10
|
+
name: group_name,
|
11
|
+
owner: owner_id,
|
12
|
+
userlist: group_user_ids,
|
13
|
+
chatid: chat_id
|
14
|
+
end
|
15
|
+
|
16
|
+
def appchat_update chat_id, payload={}
|
17
|
+
payload.merge! chatid: chat_id
|
18
|
+
post 'appchat/update', payload
|
19
|
+
end
|
20
|
+
|
21
|
+
def appchat_get chat_id
|
22
|
+
get 'appchat/get', { params: { chatid: chat_id } }
|
23
|
+
end
|
24
|
+
|
25
|
+
def text_appchat_send chat_id, content
|
26
|
+
appchat_send chat_id, {text: {content: content}, msgtype: 'text'}
|
27
|
+
end
|
28
|
+
|
29
|
+
def image_appchat_send chat_id, media_id
|
30
|
+
appchat_send chat_id, {image: {media_id: media_id}, msgtype: 'image'}
|
31
|
+
end
|
32
|
+
|
33
|
+
def voice_appchat_send chat_id, media_id
|
34
|
+
appchat_send chat_id, {voice: {media_id: media_id}, msgtype: 'voice'}
|
35
|
+
end
|
36
|
+
|
37
|
+
def file_appchat_send chat_id, media_id
|
38
|
+
appchat_send chat_id, {file: {media_id: media_id}, msgtype: 'file'}
|
39
|
+
end
|
40
|
+
|
41
|
+
def video_appchat_send chat_id, video={}
|
42
|
+
appchat_send chat_id, {video: video, msgtype: 'video'}
|
43
|
+
end
|
44
|
+
|
45
|
+
def textcard_appchat_send chat_id, textcard={}
|
46
|
+
appchat_send chat_id, {textcard: textcard, msgtype: 'textcard'}
|
47
|
+
end
|
48
|
+
|
49
|
+
def news_appchat_send chat_id, news=[]
|
50
|
+
appchat_send chat_id, {news: {articles: news}, msgtype: 'news'}
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def appchat_send chat_id, payload={}
|
56
|
+
payload.merge!(chatid: chat_id)
|
57
|
+
post 'appchat/send', payload
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -5,8 +5,7 @@ module Wework
|
|
5
5
|
module Methods
|
6
6
|
module Message
|
7
7
|
def miniprogram_message_send user_id, miniprogram_notice={}
|
8
|
-
|
9
|
-
post 'message/send', { touser: user_id, msgtype: 'miniprogram_notice', miniprogram_notice: notice }
|
8
|
+
post 'message/send', { touser: user_id, msgtype: 'miniprogram_notice', miniprogram_notice: miniprogram_notice }
|
10
9
|
end
|
11
10
|
|
12
11
|
def text_message_send user_ids, department_ids, content
|
data/lib/wework/api/provider.rb
CHANGED
@@ -4,14 +4,6 @@ module Wework
|
|
4
4
|
include Methods::Provider
|
5
5
|
include Wework::Cipher
|
6
6
|
|
7
|
-
attr_reader :encoding_aes_key, :token
|
8
|
-
|
9
|
-
def initialize(options={})
|
10
|
-
@token = options.delete(:token)
|
11
|
-
@encoding_aes_key = options.delete(:encoding_aes_key)
|
12
|
-
super(options)
|
13
|
-
end
|
14
|
-
|
15
7
|
private
|
16
8
|
|
17
9
|
def token_store
|
data/lib/wework/api/suite.rb
CHANGED
@@ -7,13 +7,12 @@ module Wework
|
|
7
7
|
include Wework::Cipher
|
8
8
|
include Methods::Service
|
9
9
|
|
10
|
-
attr_reader :
|
10
|
+
attr_reader :suite_id, :suite_secret, :suite_token
|
11
11
|
|
12
12
|
def initialize(options={})
|
13
13
|
@suite_id = options.delete(:suite_id)
|
14
14
|
@suite_secret = options.delete(:suite_secret)
|
15
15
|
@token = @suite_token = options.delete(:suite_token)
|
16
|
-
@encoding_aes_key = options.delete(:encoding_aes_key)
|
17
16
|
super(options)
|
18
17
|
end
|
19
18
|
|
data/lib/wework/cipher.rb
CHANGED
@@ -11,6 +11,14 @@ module Wework
|
|
11
11
|
BLOCK_SIZE = 32
|
12
12
|
CIPHER = 'AES-256-CBC'.freeze
|
13
13
|
|
14
|
+
def token
|
15
|
+
@token ||= options[:token]
|
16
|
+
end
|
17
|
+
|
18
|
+
def encoding_aes_key
|
19
|
+
@encoding_aes_key ||= options[:encoding_aes_key]
|
20
|
+
end
|
21
|
+
|
14
22
|
def encrypt(plain, encoding_aes_key)
|
15
23
|
cipher = OpenSSL::Cipher.new(CIPHER)
|
16
24
|
cipher.encrypt
|
data/lib/wework/request.rb
CHANGED
data/lib/wework/version.rb
CHANGED
data/wework.gemspec
CHANGED
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
|
|
22
22
|
|
23
23
|
spec.add_dependency 'http', '>= 2.2'
|
24
24
|
spec.add_dependency 'activesupport', '~> 5.0'
|
25
|
-
spec.add_dependency 'redis'
|
26
|
-
spec.add_dependency 'builder', '
|
27
|
-
spec.add_dependency 'sinatra', '
|
25
|
+
spec.add_dependency 'redis'
|
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"
|
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.2.
|
4
|
+
version: 1.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- seandong
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: http
|
@@ -42,42 +42,42 @@ dependencies:
|
|
42
42
|
name: redis
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: builder
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
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
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
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
82
|
version: '2.0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
@@ -172,6 +172,7 @@ files:
|
|
172
172
|
- lib/wework/api/contact.rb
|
173
173
|
- lib/wework/api/corp.rb
|
174
174
|
- lib/wework/api/methods/agent.rb
|
175
|
+
- lib/wework/api/methods/appchat.rb
|
175
176
|
- lib/wework/api/methods/approval.rb
|
176
177
|
- lib/wework/api/methods/batch.rb
|
177
178
|
- lib/wework/api/methods/checkin.rb
|
@@ -248,8 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
249
|
- !ruby/object:Gem::Version
|
249
250
|
version: '0'
|
250
251
|
requirements: []
|
251
|
-
|
252
|
-
rubygems_version: 2.7.6
|
252
|
+
rubygems_version: 3.1.2
|
253
253
|
signing_key:
|
254
254
|
specification_version: 4
|
255
255
|
summary: Ruby API wrapper for wechat work「企业微信」
|