fcmpush 1.4.1 → 1.4.3
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/fcmpush.gemspec +1 -1
- data/lib/fcmpush/client.rb +22 -3
- data/lib/fcmpush/configuration.rb +11 -1
- data/lib/fcmpush/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5955f70af9ad3b06fbd33190d218cd115919476a8f3bd85b0f97d3d13ab94757
|
4
|
+
data.tar.gz: 5f267e161537e51aaeb44428de5fe024556cf865b2fb3178a2b5286418250ef8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9577b9638e6d3968377e648fb407f7ec5624bf4446c6dc04b1831e4da9d82022d78c7e96fd8bd0729fdb955366fa53fbf88e641b11a2da4ac2f7931bad14d3d5
|
7
|
+
data.tar.gz: b4a36fdfc16a8d9c85fc35373db504a1861c96b0f3cdbffd5feebcce7542d5d4bf969408f25854262317555e753ad2bedf0aa019012555364be6976869309b7f
|
data/fcmpush.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.required_ruby_version = '>= 2.6', '< 3.
|
25
|
+
spec.required_ruby_version = '>= 2.6', '< 3.4'
|
26
26
|
|
27
27
|
spec.add_dependency 'google-apis-identitytoolkit_v3'
|
28
28
|
spec.add_dependency 'net-http-persistent', '~> 4.0.1'
|
data/lib/fcmpush/client.rb
CHANGED
@@ -23,8 +23,22 @@ module Fcmpush
|
|
23
23
|
access_token_response = v1_authorize
|
24
24
|
@access_token = access_token_response['access_token']
|
25
25
|
@access_token_expiry = Time.now.utc + access_token_response['expires_in']
|
26
|
-
@server_key = configuration.server_key
|
26
|
+
# @server_key = configuration.server_key
|
27
27
|
@connection = Net::HTTP::Persistent.new
|
28
|
+
|
29
|
+
if !configuration.proxy
|
30
|
+
# do nothing
|
31
|
+
elsif configuration.proxy == :ENV
|
32
|
+
@connection.proxy = :ENV
|
33
|
+
elsif configuration.proxy && configuration.proxy[:uri]
|
34
|
+
uri = URI(configuration.proxy[:uri])
|
35
|
+
# user name must not be a empty string, password can
|
36
|
+
if configuration.proxy[:user] && configuration.proxy[:user].strip != ''
|
37
|
+
uri.user = configuration.proxy[:user]
|
38
|
+
uri.password = configuration.proxy[:password] if configuration.proxy[:password]
|
39
|
+
end
|
40
|
+
@connection.proxy = uri
|
41
|
+
end
|
28
42
|
end
|
29
43
|
|
30
44
|
def v1_authorize
|
@@ -98,7 +112,10 @@ module Fcmpush
|
|
98
112
|
uri = URI.join(TOPIC_DOMAIN, TOPIC_ENDPOINT_PREFIX + suffix)
|
99
113
|
uri.query = URI.encode_www_form(query) unless query.empty?
|
100
114
|
|
101
|
-
headers =
|
115
|
+
headers = v1_authorized_header(headers)
|
116
|
+
# cf. https://takanamito.hateblo.jp/entry/2020/07/04/175045
|
117
|
+
# cf. https://github.com/miyataka/fcmpush/issues/40
|
118
|
+
headers['access_token_auth'] = 'true'
|
102
119
|
post = Net::HTTP::Post.new(uri, headers)
|
103
120
|
post.body = make_subscription_body(topic, *instance_ids)
|
104
121
|
|
@@ -119,7 +136,9 @@ module Fcmpush
|
|
119
136
|
'Authorization' => "Bearer #{access_token}")
|
120
137
|
end
|
121
138
|
|
139
|
+
# @deprecated TODO: remove this method next version
|
122
140
|
def legacy_authorized_header(headers)
|
141
|
+
warn "[DEPRECATION] `legacy_authorized_header` is deprecated. Please use `v1_authorized_header` instead."
|
123
142
|
headers.merge('Content-Type' => 'application/json',
|
124
143
|
'Accept' => 'application/json',
|
125
144
|
'Authorization' => "Bearer #{server_key}")
|
@@ -127,7 +146,7 @@ module Fcmpush
|
|
127
146
|
|
128
147
|
def exception_handler(response)
|
129
148
|
error = STATUS_TO_EXCEPTION_MAPPING[response.code]
|
130
|
-
raise error.new("
|
149
|
+
raise error.new("Received an error response #{response.code} #{error.to_s.split('::').last}: #{response.body}", response) if error
|
131
150
|
|
132
151
|
response
|
133
152
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Fcmpush
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :scope, :json_key_io, :server_key
|
3
|
+
attr_accessor :scope, :json_key_io, :server_key, :proxy
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
@scope = ['https://www.googleapis.com/auth/firebase.messaging']
|
@@ -15,7 +15,17 @@ module Fcmpush
|
|
15
15
|
# ENV['GOOGLE_PRIVATE_KEY'] = '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n'
|
16
16
|
|
17
17
|
# regacy auth
|
18
|
+
# @deprecated TODO: remove this next version
|
18
19
|
@server_key = ENV['FCM_SERVER_KEY']
|
20
|
+
if @server_key
|
21
|
+
warn '[DEPRECATION] `FCM_SERVER_KEY` environment variable, also @server_key is deprecated. This attribute will be removed next version.'
|
22
|
+
end
|
23
|
+
|
24
|
+
# THIS IS EXPERIMENTAL
|
25
|
+
# NOT support `HTTPS_PROXY` environment variable. This feature not tested well on CI.
|
26
|
+
# cf. https://github.com/miyataka/fcmpush/pull/39#issuecomment-1722533622
|
27
|
+
# proxy
|
28
|
+
@proxy = :ENV
|
19
29
|
end
|
20
30
|
end
|
21
31
|
end
|
data/lib/fcmpush/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fcmpush
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- miyataka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-01-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-apis-identitytoolkit_v3
|
@@ -113,7 +113,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
113
|
version: '2.6'
|
114
114
|
- - "<"
|
115
115
|
- !ruby/object:Gem::Version
|
116
|
-
version: '3.
|
116
|
+
version: '3.4'
|
117
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
118
|
requirements:
|
119
119
|
- - ">="
|