third_party_wxa 0.1.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 +7 -0
- data/.gitignore +8 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +38 -0
- data/README.md +35 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/third_party_wxa.rb +36 -0
- data/lib/third_party_wxa/api.rb +4 -0
- data/lib/third_party_wxa/api/authorize.rb +31 -0
- data/lib/third_party_wxa/api/member.rb +32 -0
- data/lib/third_party_wxa/api/proxy.rb +49 -0
- data/lib/third_party_wxa/api/qrcode.rb +23 -0
- data/lib/third_party_wxa/api/template.rb +30 -0
- data/lib/third_party_wxa/api/token.rb +22 -0
- data/lib/third_party_wxa/plugin.rb +129 -0
- data/lib/third_party_wxa/version.rb +3 -0
- data/third_party_wxa.gemspec +43 -0
- metadata +120 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b4fead4b95ac8afd23a3241a840d7bee6fc7ea4ab19ea3650dbf6c7b18dc9e26
|
4
|
+
data.tar.gz: adb6d5ac2027ee60ef9c4b4493b5c96944f017d1cb504e745d66aa8e355bb210
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 22405fd9cb264e804be4c3f02a41fbedd5d8a1e098a432aa6be5a100bafd05fcb479730c13e53fefd6b07218b6d0a45e6e7fc2772554dfd3b209b9ac4c164edf
|
7
|
+
data.tar.gz: e1fa6bed1bf88195f86ab440ba925c8127fed7d30d0d485808df8abfe349495a7896884454355953c8ca4b1028909e81cef0d738e19817fd0d3d7149768cecd3
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
third_party_wxa (0.1.1)
|
5
|
+
json (>= 1.8.6)
|
6
|
+
rest-client (>= 2.0)
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
domain_name (0.5.20180417)
|
12
|
+
unf (>= 0.0.5, < 1.0.0)
|
13
|
+
http-cookie (1.0.3)
|
14
|
+
domain_name (~> 0.5)
|
15
|
+
json (2.2.0)
|
16
|
+
mime-types (3.2.2)
|
17
|
+
mime-types-data (~> 3.2015)
|
18
|
+
mime-types-data (3.2018.0812)
|
19
|
+
netrc (0.11.0)
|
20
|
+
rake (10.4.2)
|
21
|
+
rest-client (2.0.2)
|
22
|
+
http-cookie (>= 1.0.2, < 2.0)
|
23
|
+
mime-types (>= 1.16, < 4.0)
|
24
|
+
netrc (~> 0.8)
|
25
|
+
unf (0.1.4)
|
26
|
+
unf_ext
|
27
|
+
unf_ext (0.0.7.6)
|
28
|
+
|
29
|
+
PLATFORMS
|
30
|
+
ruby
|
31
|
+
|
32
|
+
DEPENDENCIES
|
33
|
+
bundler (~> 2.0)
|
34
|
+
rake (~> 10.0)
|
35
|
+
third_party_wxa!
|
36
|
+
|
37
|
+
BUNDLED WITH
|
38
|
+
2.0.1
|
data/README.md
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# ThirdPartyWxa
|
2
|
+
|
3
|
+
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/third_party_wxa`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
+
|
5
|
+
TODO: Delete this and the text above, and describe your gem
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'third_party_wxa'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install third_party_wxa
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/third_party_wxa.
|
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "third_party_wxa"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|
data/bin/setup
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require "third_party_wxa/version"
|
2
|
+
require 'rest_client'
|
3
|
+
require "third_party_wxa/api"
|
4
|
+
require 'third_party_wxa/plugin'
|
5
|
+
module ThirdPartyWxa
|
6
|
+
BASE = 'https://api.weixin.qq.com/'.freeze
|
7
|
+
# scope => [cgi-bin, wxa]
|
8
|
+
class << self
|
9
|
+
def http_get_without_component_access_token scope, url, url_params={}
|
10
|
+
url = "#{BASE}#{scope}/#{url}"
|
11
|
+
JSON.parse RestClient.get URI.encode(url), {params: url_params}
|
12
|
+
end
|
13
|
+
|
14
|
+
# url cant end with '/', url should be encoded
|
15
|
+
def http_post_without_component_access_token scope, url, post_params={}, url_params={}
|
16
|
+
url = "#{BASE}#{scope}/#{url}"
|
17
|
+
param = url_params.to_param
|
18
|
+
url += "?#{param}" if !param.blank?
|
19
|
+
JSON.parse RestClient.post URI.encode(url), post_params.to_json
|
20
|
+
end
|
21
|
+
|
22
|
+
def pre_expire
|
23
|
+
5.minutes.to_i
|
24
|
+
end
|
25
|
+
|
26
|
+
def cal_expire_at expire_in, pre=nil
|
27
|
+
return (Time.now.to_i + expire_in.to_i - pre_expire) if pre.blank?
|
28
|
+
Time.now.to_i + expire_in.to_i - pre
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
module ThirdPartyWxa
|
34
|
+
class Error < StandardError; end
|
35
|
+
# Your code goes here...
|
36
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
module Api
|
3
|
+
module Authorize
|
4
|
+
def componentloginpage_url redirect, type=2
|
5
|
+
"https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=#{appid}&pre_auth_code=#{get_pre_auth_code}&auth_type=#{type}&redirect_uri=#{redirect}"
|
6
|
+
end
|
7
|
+
|
8
|
+
def bindcomponent redirect, type=2
|
9
|
+
"https://mp.weixin.qq.com/safe/bindcomponent?action=bindcomponent&auth_type=#{type}&no_scan=1&component_appid=#{appid}&pre_auth_code=#{get_pre_auth_code}&redirect_uri=#{redirect}&auth_type=#{type}#wechat_redirect"
|
10
|
+
end
|
11
|
+
|
12
|
+
def authorizer_access_token_api(auth_code)
|
13
|
+
params = {component_appid: appid, authorization_code: auth_code}
|
14
|
+
ThirdPartyWxa.http_post_without_component_access_token 'cgi-bin','component/api_query_auth', params, {component_access_token: get_component_access_token}
|
15
|
+
end
|
16
|
+
|
17
|
+
#https:// api.weixin.qq.com /cgi-bin/component/api_authorizer_token?component_access_token=xxxxx
|
18
|
+
def authorizer_access_token_fresh
|
19
|
+
|
20
|
+
params = {
|
21
|
+
"component_appid": appid,
|
22
|
+
"authorizer_appid": authorizer_appid,
|
23
|
+
"authorizer_refresh_token": authorizer_refresh_token,
|
24
|
+
}
|
25
|
+
http_post 'cgi-bin', 'component/api_authorizer_token', params
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
module Api
|
3
|
+
module Member
|
4
|
+
|
5
|
+
# 1、绑定微信用户为小程序体验者
|
6
|
+
# https://api.weixin.qq.com/wxa/bind_tester?access_token=TOKEN
|
7
|
+
def bind_tester test_id
|
8
|
+
http_post_with_token 'wxa', 'bind_tester', {wechatid: test_id}
|
9
|
+
end
|
10
|
+
|
11
|
+
# 2、解除绑定小程序的体验者
|
12
|
+
# https://api.weixin.qq.com/wxa/unbind_tester?access_token=TOKEN
|
13
|
+
def unbind_tester test_id
|
14
|
+
http_post_with_token 'wxa', 'unbind_tester', {wechatid: test_id}
|
15
|
+
end
|
16
|
+
|
17
|
+
# 3. 获取体验者列表
|
18
|
+
# https://api.weixin.qq.com/wxa/memberauth?access_token=TOKEN
|
19
|
+
def get_experiencer
|
20
|
+
http_post_with_token 'wxa', 'memberauth', {action:"get_experiencer"}
|
21
|
+
end
|
22
|
+
|
23
|
+
# 发送消息
|
24
|
+
def send_message query_auth_code
|
25
|
+
http_post_with_token 'cgi-bin', 'memberauth', {"touser": "OPENID", "msgtype": "text", "text": {"content":"#{query_auth_code}_from_api"}}
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
module Api
|
3
|
+
module Proxy
|
4
|
+
|
5
|
+
# 获取授权小程序帐号的可选类目
|
6
|
+
# https://api.weixin.qq.com/wxa/get_category?access_token=TOKEN
|
7
|
+
def get_category
|
8
|
+
http_get_with_token 'wxa', 'get_category'
|
9
|
+
end
|
10
|
+
|
11
|
+
# 获取小程序的第三方提交代码的页面配置(仅供第三方开发者代小程序调用)
|
12
|
+
# https://api.weixin.qq.com/wxa/get_page?access_token=TOKEN
|
13
|
+
def get_page
|
14
|
+
http_get_with_token 'wxa', 'get_page'
|
15
|
+
end
|
16
|
+
|
17
|
+
# 将第三方提交的代码包提交审核(仅供第三方开发者代小程序调用
|
18
|
+
# https://api.weixin.qq.com/wxa/submit_audit?access_token=TOKEN
|
19
|
+
def submit_audit config_json
|
20
|
+
http_post_with_token 'wxa', 'submit_audit', config_json
|
21
|
+
end
|
22
|
+
|
23
|
+
# 7、查询某个指定版本的审核状态(仅供第三方代小程序调用
|
24
|
+
# https://api.weixin.qq.com/wxa/get_auditstatus?access_token=TOKEN
|
25
|
+
def get_auditstatus auditid
|
26
|
+
http_post_with_token 'wxa', 'get_auditstatus', {auditid: auditid}
|
27
|
+
end
|
28
|
+
|
29
|
+
# 8、查询最新一次提交的审核状态(仅供第三方代小程序调用)
|
30
|
+
# https://api.weixin.qq.com/wxa/get_latest_auditstatus?access_token=TOKEN
|
31
|
+
def get_latest_auditstatus
|
32
|
+
http_get_with_token 'wxa', 'get_latest_auditstatus'
|
33
|
+
end
|
34
|
+
|
35
|
+
# 9、发布已通过审核的小程序(仅供第三方代小程序调用)
|
36
|
+
# https://api.weixin.qq.com/wxa/release?access_token=TOKEN
|
37
|
+
def release
|
38
|
+
http_post_with_token 'wxa', 'release'
|
39
|
+
end
|
40
|
+
|
41
|
+
# 10、修改小程序线上代码的可见状态(仅供第三方代小程序调用)close为不可见,open为可见
|
42
|
+
# https://api.weixin.qq.com/wxa/change_visitstatus?access_token=TOKEN
|
43
|
+
def change_visitstatus action
|
44
|
+
http_post_with_token 'wxa', 'change_visitstatus', {action: action}
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
module Api
|
3
|
+
module Qrcode
|
4
|
+
|
5
|
+
# 获取小程序码
|
6
|
+
# 接口A: 适用于需要的码数量较少的业务场景 接口地址:
|
7
|
+
# https://api.weixin.qq.com/wxa/getwxacode?access_token=ACCESS_TOKEN
|
8
|
+
def get_wxa_code(path , width = 430 )
|
9
|
+
params
|
10
|
+
http_post_with_token 'wxa', 'getwxacode', {path: path, width: width}
|
11
|
+
end
|
12
|
+
|
13
|
+
# 获取体验小程序的体验二维码
|
14
|
+
# https://api.weixin.qq.com/wxa/ get_qrcode?access_token=TOKEN&path=page%2Findex%3Faction%3D1
|
15
|
+
def get_qrcode(path = nil )
|
16
|
+
params = {}
|
17
|
+
params.merge!({path: path}) if path.present?
|
18
|
+
http_get_with_token 'wxa', 'get_qrcode', params
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
module Api
|
3
|
+
module Template
|
4
|
+
|
5
|
+
# 获取代码模版库中的所有小程序代码模版
|
6
|
+
# https://api.weixin.qq.com/wxa/gettemplatelist?access_token=TOKEN
|
7
|
+
def get_template_list
|
8
|
+
http_get 'wxa', 'gettemplatelist'
|
9
|
+
end
|
10
|
+
|
11
|
+
# 获取草稿箱内的所有临时代码草稿
|
12
|
+
def get_template_draft_list
|
13
|
+
http_get 'wxa', 'gettemplatedraftlist'
|
14
|
+
end
|
15
|
+
|
16
|
+
# 将草稿箱的草稿选为小程序代码模版
|
17
|
+
def add_to_template(draft_id)
|
18
|
+
http_post 'wxa', 'addtotemplate', {draft_id: draft_id}.to_json
|
19
|
+
end
|
20
|
+
|
21
|
+
# 删除指定小程序代码模版
|
22
|
+
def delete_template(template_id)
|
23
|
+
http_post 'wxa', 'deletetemplate', {template_id: template_id}.to_json
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
module Api
|
3
|
+
module Token
|
4
|
+
|
5
|
+
# https://api.weixin.qq.com/cgi-bin/component/api_component_token
|
6
|
+
def component_access_token_api
|
7
|
+
params = {component_appid: appid, component_appsecret: appsecret, component_verify_ticket: component_verify_ticket}
|
8
|
+
ThirdPartyWxa.http_post_without_component_access_token 'cgi-bin', 'component/api_component_token', params
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
# 通过component_access_token获取pre_auth_code
|
13
|
+
# https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx
|
14
|
+
def pre_auth_code_api
|
15
|
+
params = {component_appid: appid}
|
16
|
+
ThirdPartyWxa.http_post_without_component_access_token 'cgi-bin', 'component/api_create_preauthcode', params, {component_access_token: get_component_access_token}
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,129 @@
|
|
1
|
+
module ThirdPartyWxa
|
2
|
+
class Plugin
|
3
|
+
|
4
|
+
include Api::Token
|
5
|
+
include Api::Template
|
6
|
+
include Api::Member
|
7
|
+
include Api::Qrcode
|
8
|
+
include Api::Proxy
|
9
|
+
include Api::Authorize
|
10
|
+
|
11
|
+
attr_accessor :appid, :appsecret
|
12
|
+
attr_accessor :component_verify_ticket, :ticket_expire_at
|
13
|
+
attr_accessor :component_access_token, :component_expire_at #2小时
|
14
|
+
attr_accessor :pre_auth_code, :pre_expire_at #10分钟
|
15
|
+
attr_accessor :authorizer_appid
|
16
|
+
attr_accessor :authorizer_access_token, :authorizer_refresh_token, :authorizer_expire_at
|
17
|
+
|
18
|
+
def initialize
|
19
|
+
@appid = ENV['appid']
|
20
|
+
@appsecret = ENV['appsecret']
|
21
|
+
end
|
22
|
+
|
23
|
+
def set_tickect ticket, expire_in
|
24
|
+
@component_verify_ticket = ticket
|
25
|
+
@ticket_expire_at = ThirdPartyWxa.cal_expire_at expire_in
|
26
|
+
self
|
27
|
+
end
|
28
|
+
|
29
|
+
def component_access_token_valid?
|
30
|
+
return false if @component_access_token.nil? || @component_expire_at.nil?
|
31
|
+
@component_expire_at <= Time.now
|
32
|
+
end
|
33
|
+
|
34
|
+
def get_component_access_token
|
35
|
+
return @component_access_token if component_access_token_valid?
|
36
|
+
set_component_access_token
|
37
|
+
end
|
38
|
+
|
39
|
+
def set_component_access_token
|
40
|
+
res = component_access_token_api
|
41
|
+
@component_access_token = res['component_access_token']
|
42
|
+
@component_expire_at = ThirdPartyWxa.cal_expire_at res['expire_in']
|
43
|
+
self
|
44
|
+
end
|
45
|
+
|
46
|
+
def pre_auth_code_valid?
|
47
|
+
return false if @pre_auth_code.nil? || @pre_expire_at.nil?
|
48
|
+
@pre_expire_at <= Time.now.to_i
|
49
|
+
end
|
50
|
+
|
51
|
+
def get_pre_auth_code
|
52
|
+
return @pre_auth_code if pre_auth_code_valid?
|
53
|
+
set_pre_auth_code
|
54
|
+
end
|
55
|
+
|
56
|
+
def set_pre_auth_code
|
57
|
+
res = pre_auth_code_api
|
58
|
+
@pre_auth_code = res['pre_auth_code']
|
59
|
+
@pre_expire_at = ThirdPartyWxa.cal_expire_at res['expire_in'], 60
|
60
|
+
self
|
61
|
+
end
|
62
|
+
|
63
|
+
def authorizer_access_token_valid?
|
64
|
+
return false if @authorizer_access_token.nil? || @authorizer_expire_at.blank?
|
65
|
+
@authorizer_expire_at <= Time.now.to_i
|
66
|
+
end
|
67
|
+
|
68
|
+
def get_authorizer_access_token
|
69
|
+
if !authorizer_access_token_valid? # raise exception?
|
70
|
+
if @authorizer_refresh_token.present?
|
71
|
+
refresh_authorizer_access_token
|
72
|
+
else
|
73
|
+
throw 'refresh token is missing, please authorize again'
|
74
|
+
end
|
75
|
+
end
|
76
|
+
@authorizer_access_token
|
77
|
+
end
|
78
|
+
|
79
|
+
def set_authorizer_access_token code
|
80
|
+
res = authorizer_access_token_api code
|
81
|
+
@authorizer_access_token = res['authorization_info']['authorizer_access_token']
|
82
|
+
@authorizer_appid = res['authorization_info']['authorizer_appid']
|
83
|
+
@authorizer_expire_at = ThirdPartyWxa.cal_expire_at res['authorization_info']['expire_in']
|
84
|
+
@authorizer_refresh_token = res['authorization_info']['authorizer_refresh_token']
|
85
|
+
self
|
86
|
+
end
|
87
|
+
|
88
|
+
def refresh_authorizer_access_token
|
89
|
+
res = authorizer_access_token_fresh
|
90
|
+
@authorizer_access_token = res['authorizer_access_token']
|
91
|
+
@authorizer_expire_at = ThirdPartyWxa.cal_expire_at res['expires_in']
|
92
|
+
@authorizer_refresh_token = res['authorizer_refresh_token']
|
93
|
+
self
|
94
|
+
end
|
95
|
+
|
96
|
+
def http_get scope, url, url_params={}
|
97
|
+
url_params.merge! token_params
|
98
|
+
ThirdPartyWxa.http_get_without_component_access_token scope, url, url_params
|
99
|
+
end
|
100
|
+
|
101
|
+
def http_post scope, url, post_params={}, url_params={}
|
102
|
+
url_params.merge! token_params
|
103
|
+
ThirdPartyWxa.http_post_without_component_access_token scope, url, post_params, url_params
|
104
|
+
end
|
105
|
+
|
106
|
+
def http_get_with_token scope, url, url_params={}
|
107
|
+
url_params.merge! auth_token_params
|
108
|
+
ThirdPartyWxa.http_get_without_component_access_token scope, url, url_params
|
109
|
+
end
|
110
|
+
|
111
|
+
def http_post_with_token scope, url, post_params={}, url_params={}
|
112
|
+
url_params.merge! auth_token_params
|
113
|
+
ThirdPartyWxa.http_post_without_component_access_token scope, url, post_params, url_params
|
114
|
+
end
|
115
|
+
|
116
|
+
|
117
|
+
private
|
118
|
+
def token_params
|
119
|
+
{access_token: get_component_access_token}
|
120
|
+
end
|
121
|
+
|
122
|
+
def auth_token_params
|
123
|
+
{access_token: get_authorizer_access_token}
|
124
|
+
end
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
end
|
129
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "third_party_wxa/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "third_party_wxa"
|
8
|
+
spec.version = ThirdPartyWxa::VERSION
|
9
|
+
spec.authors = ["hzy"]
|
10
|
+
spec.email = ["18674699548@163.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{A tool for wx third party}
|
13
|
+
spec.description = %q{A tool for wx third party}
|
14
|
+
spec.homepage = "https://github.com/cs-cj/third_party_wxa"
|
15
|
+
|
16
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
|
+
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
18
|
+
if spec.respond_to?(:metadata)
|
19
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
20
|
+
|
21
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
22
|
+
spec.metadata["source_code_uri"] = "https://github.com/cs-cj/third_party_wxa"
|
23
|
+
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
|
24
|
+
else
|
25
|
+
raise "RubyGems 2.0 or newer is required to protect against " \
|
26
|
+
"public gem pushes."
|
27
|
+
end
|
28
|
+
|
29
|
+
# Specify which files should be added to the gem when it is released.
|
30
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
31
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
32
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
33
|
+
end
|
34
|
+
spec.bindir = "exe"
|
35
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
36
|
+
spec.require_paths = ["lib"]
|
37
|
+
|
38
|
+
spec.add_dependency 'rest-client', ['>= 2.0']
|
39
|
+
spec.add_dependency 'json', ['>=1.8.6']
|
40
|
+
|
41
|
+
spec.add_development_dependency "bundler", "~> 2.0"
|
42
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
43
|
+
end
|
metadata
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: third_party_wxa
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- hzy
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-06-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rest-client
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: json
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.8.6
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.8.6
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
description: A tool for wx third party
|
70
|
+
email:
|
71
|
+
- 18674699548@163.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".gitignore"
|
77
|
+
- Gemfile
|
78
|
+
- Gemfile.lock
|
79
|
+
- README.md
|
80
|
+
- Rakefile
|
81
|
+
- bin/console
|
82
|
+
- bin/setup
|
83
|
+
- lib/third_party_wxa.rb
|
84
|
+
- lib/third_party_wxa/api.rb
|
85
|
+
- lib/third_party_wxa/api/authorize.rb
|
86
|
+
- lib/third_party_wxa/api/member.rb
|
87
|
+
- lib/third_party_wxa/api/proxy.rb
|
88
|
+
- lib/third_party_wxa/api/qrcode.rb
|
89
|
+
- lib/third_party_wxa/api/template.rb
|
90
|
+
- lib/third_party_wxa/api/token.rb
|
91
|
+
- lib/third_party_wxa/plugin.rb
|
92
|
+
- lib/third_party_wxa/version.rb
|
93
|
+
- third_party_wxa.gemspec
|
94
|
+
homepage: https://github.com/cs-cj/third_party_wxa
|
95
|
+
licenses: []
|
96
|
+
metadata:
|
97
|
+
allowed_push_host: https://rubygems.org
|
98
|
+
homepage_uri: https://github.com/cs-cj/third_party_wxa
|
99
|
+
source_code_uri: https://github.com/cs-cj/third_party_wxa
|
100
|
+
post_install_message:
|
101
|
+
rdoc_options: []
|
102
|
+
require_paths:
|
103
|
+
- lib
|
104
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
requirements:
|
111
|
+
- - ">="
|
112
|
+
- !ruby/object:Gem::Version
|
113
|
+
version: '0'
|
114
|
+
requirements: []
|
115
|
+
rubyforge_project:
|
116
|
+
rubygems_version: 2.7.8
|
117
|
+
signing_key:
|
118
|
+
specification_version: 4
|
119
|
+
summary: A tool for wx third party
|
120
|
+
test_files: []
|