line-bot-api 1.21.0 → 1.24.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0c7c212cf7261c341fbd02845a3f678aa8d2eadd302a5fef4bb4e574a4013062
4
- data.tar.gz: b87face2a4aacc3245a678c6cf21099702ca352c26e42ed3377e98565dceaf1f
3
+ metadata.gz: e6b6ba33d24c43ef8485e0b9de1a5a36b928ec5cc89a259cc813c0952ada238d
4
+ data.tar.gz: 2bc49b9ee22a628cc94abfe4193627fc44ca10b02acb03441febb41052d00597
5
5
  SHA512:
6
- metadata.gz: 860c6649dcb835b6f495fefd96b27b98cd2501fc5b3c93479b7cd10a65fd396e4008f86d6cd6fe74dc3cba8f9fd3392f20ee2151d6345087e7ab216124e12ab6
7
- data.tar.gz: 18f79d5e93ec212165d4855e60060f8fc5b9c91e9b6f804e0469f4d18215565f0141ff17b6dfcf0fed35eefd6d289ce7fa4d15c138b345d0d2047fe3d7f6c807
6
+ metadata.gz: 29985c36fc9b6273acbaf53b78ace56a278f16db96c43696dbfb0163638f64c2c567693c127883d7e2bea31a9ea3576972d83c0a8252a0b474be2da50ffb69ef
7
+ data.tar.gz: 540067af91254691fe7affa878f5a6197aa33bb0ea1ece0ff11e70bd91c2ebf05c496f226454c304339292f9e1c91fcee34366fbbcb055ea00cbe7a133654937
@@ -15,7 +15,7 @@
15
15
  module Line
16
16
  module Bot
17
17
  module API
18
- VERSION = "1.21.0"
18
+ VERSION = "1.24.0"
19
19
  end
20
20
  end
21
21
  end
@@ -116,9 +116,6 @@ module Line
116
116
  #
117
117
  # @return [Net::HTTPResponse]
118
118
  def issue_channel_access_token_jwt(jwt)
119
- channel_id_required
120
- channel_secret_required
121
-
122
119
  endpoint_path = '/oauth2/v2.1/token'
123
120
  payload = URI.encode_www_form(
124
121
  grant_type: 'client_credentials',
@@ -148,15 +145,46 @@ module Line
148
145
  post(oauth_endpoint, endpoint_path, payload, headers)
149
146
  end
150
147
 
148
+ # Verify ID token
149
+ #
150
+ # @param id_token [String] ID token
151
+ # @param nonce [String] Expected nonce value. Use the nonce value provided in the authorization request. Omit if the nonce value was not specified in the authorization request.
152
+ # @param user_id [String] Expected user ID.
153
+ #
154
+ # @return [Net::HTTPResponse]
155
+ def verify_id_token(id_token, nonce: nil, user_id: nil)
156
+ channel_id_required
157
+
158
+ endpoint_path = '/oauth2/v2.1/verify'
159
+ payload = URI.encode_www_form({
160
+ client_id: channel_id,
161
+ id_token: id_token,
162
+ nonce: nonce,
163
+ user_id: user_id
164
+ }.compact)
165
+ headers = { 'Content-Type' => 'application/x-www-form-urlencoded' }
166
+ post(oauth_endpoint, endpoint_path, payload, headers)
167
+ end
168
+
169
+ # Verify access token v2.1
170
+ #
171
+ # @param access_token [String] access token
172
+ #
173
+ # @return [Net::HTTPResponse]
174
+ def verify_access_token(access_token)
175
+ payload = URI.encode_www_form(
176
+ access_token: access_token
177
+ )
178
+ endpoint_path = "/oauth2/v2.1/verify?#{payload}"
179
+ get(oauth_endpoint, endpoint_path)
180
+ end
181
+
151
182
  # Get all valid channel access token key IDs v2.1
152
183
  #
153
184
  # @param jwt [String]
154
185
  #
155
186
  # @return [Net::HTTPResponse]
156
187
  def get_channel_access_token_key_ids_jwt(jwt)
157
- channel_id_required
158
- channel_secret_required
159
-
160
188
  payload = URI.encode_www_form(
161
189
  client_assertion_type: 'urn:ietf:params:oauth:client-assertion-type:jwt-bearer',
162
190
  client_assertion: jwt
@@ -167,19 +195,33 @@ module Line
167
195
  get(oauth_endpoint, endpoint_path, headers)
168
196
  end
169
197
 
198
+ # Get user profile by access token
199
+ #
200
+ # @param access_token [String] access token
201
+ #
202
+ # @return [Net::HTTPResponse]
203
+ def get_profile_by_access_token(access_token)
204
+ headers = {
205
+ "Authorization" => "Bearer #{access_token}",
206
+ }
207
+ endpoint_path = "/v2/profile"
208
+ get(oauth_endpoint, endpoint_path, headers)
209
+ end
210
+
170
211
  # Push messages to a user using user_id.
171
212
  #
172
213
  # @param user_id [String] User Id
173
214
  # @param messages [Hash or Array] Message Objects
174
215
  # @param headers [Hash] HTTP Headers
216
+ # @param payload [Hash] Additional request body
175
217
  # @return [Net::HTTPResponse]
176
- def push_message(user_id, messages, headers: {})
218
+ def push_message(user_id, messages, headers: {}, payload: {})
177
219
  channel_token_required
178
220
 
179
221
  messages = [messages] if messages.is_a?(Hash)
180
222
 
181
223
  endpoint_path = '/bot/message/push'
182
- payload = { to: user_id, messages: messages }.to_json
224
+ payload = payload.merge({ to: user_id, messages: messages }).to_json
183
225
  post(endpoint, endpoint_path, payload, credentials.merge(headers))
184
226
  end
185
227
 
@@ -218,15 +260,16 @@ module Line
218
260
  # @param to [Array or String] Array of userIds
219
261
  # @param messages [Hash or Array] Message Objects
220
262
  # @param headers [Hash] HTTP Headers
263
+ # @param payload [Hash] Additional request body
221
264
  # @return [Net::HTTPResponse]
222
- def multicast(to, messages, headers: {})
265
+ def multicast(to, messages, headers: {}, payload: {})
223
266
  channel_token_required
224
267
 
225
268
  to = [to] if to.is_a?(String)
226
269
  messages = [messages] if messages.is_a?(Hash)
227
270
 
228
271
  endpoint_path = '/bot/message/multicast'
229
- payload = { to: to, messages: messages }.to_json
272
+ payload = payload.merge({ to: to, messages: messages }).to_json
230
273
  post(endpoint, endpoint_path, payload, credentials.merge(headers))
231
274
  end
232
275
 
@@ -337,15 +380,22 @@ module Line
337
380
 
338
381
  # Get user IDs of who added your LINE Official Account as a friend
339
382
  #
340
- # @param continuation_token [String] Identifier to return next page
341
- # (next property to be included in the response)
383
+ # @param start [String] Identifier to return next page (next property to be included in the response)
384
+ # @param limit [Integer] The maximum number of user IDs to retrieve in a single request
342
385
  #
343
386
  # @return [Net::HTTPResponse]
344
- def get_follower_ids(continuation_token = nil)
387
+ def get_follower_ids(deprecated_continuation_token = nil, start: nil, limit: nil)
345
388
  channel_token_required
346
389
 
390
+ if deprecated_continuation_token
391
+ warn "continuation_token as the first argument is deprecated. Please use :start instead."
392
+ start = deprecated_continuation_token
393
+ end
394
+
395
+ params = { start: start, limit: limit }.compact
396
+
347
397
  endpoint_path = "/bot/followers/ids"
348
- endpoint_path += "?start=#{continuation_token}" if continuation_token
398
+ endpoint_path += "?" + URI.encode_www_form(params) unless params.empty?
349
399
  get(endpoint, endpoint_path, credentials)
350
400
  end
351
401
 
@@ -578,6 +628,41 @@ module Line
578
628
  delete(endpoint, endpoint_path, credentials)
579
629
  end
580
630
 
631
+ # Update rich menu alias
632
+ #
633
+ # @param rich_menu_id [String] ID of an uploaded rich menu
634
+ # @param rich_menu_alias_id [String] string of alias words rich menu
635
+ #
636
+ # @return [Net::HTTPResponse]
637
+ def update_rich_menus_alias(rich_menu_id, rich_menu_alias_id)
638
+ channel_token_required
639
+
640
+ endpoint_path = "/bot/richmenu/alias/#{rich_menu_alias_id}"
641
+ post(endpoint, endpoint_path, { richMenuId: rich_menu_id }.to_json, credentials)
642
+ end
643
+
644
+ # Get a rich menu alias via a rich menu alias ID
645
+ #
646
+ # @param rich_menu_alias_id [String] string of alias words rich menu
647
+ #
648
+ # @return [Net::HTTPResponse]
649
+ def get_rich_menus_alias(rich_menu_alias_id)
650
+ channel_token_required
651
+
652
+ endpoint_path = "/bot/richmenu/alias/#{rich_menu_alias_id}"
653
+ get(endpoint, endpoint_path, credentials)
654
+ end
655
+
656
+ # Get a list of all uploaded rich menus alias
657
+ #
658
+ # @return [Net::HTTPResponse]
659
+ def get_rich_menus_alias_list
660
+ channel_token_required
661
+
662
+ endpoint_path = "/bot/richmenu/alias/list"
663
+ get(endpoint, endpoint_path, credentials)
664
+ end
665
+
581
666
  # Link a rich menu to a user
582
667
  #
583
668
  # If you want to link a rich menu to multiple users,
@@ -961,6 +1046,45 @@ module Line
961
1046
  put(endpoint, endpoint_path, body.to_json, credentials)
962
1047
  end
963
1048
 
1049
+ # Get the per-unit statistics of how users interact with push messages and multicast messages.
1050
+ #
1051
+ # @param unit [String] Case-sensitive name of aggregation unit specified when sending the message.
1052
+ # @param from [String] Start date of aggregation period in UTC+9 with `yyyyMMdd` format
1053
+ # @param to [String] End date of aggregation period in UTC+9 with `yyyyMMdd` format.
1054
+ #
1055
+ # @return [Net::HTTPResponse]
1056
+ def get_statistics_per_unit(unit:, from:, to:)
1057
+ channel_token_required
1058
+
1059
+ params = {customAggregationUnit: unit, from: from, to: to}
1060
+ endpoint_path = "/bot/insight/message/event/aggregation?" + URI.encode_www_form(params)
1061
+ get(endpoint, endpoint_path, credentials)
1062
+ end
1063
+
1064
+ # Get the number of aggregation units used this month.
1065
+ #
1066
+ # @return [Net::HTTPResponse]
1067
+ def get_aggregation_info
1068
+ channel_token_required
1069
+
1070
+ endpoint_path = "/bot/message/aggregation/info"
1071
+ get(endpoint, endpoint_path, credentials)
1072
+ end
1073
+
1074
+ # Get the name list of units used this month for statistics aggregation.
1075
+ #
1076
+ # @param limit [Integer] Maximum number of aggregation units per request. Maximum: 100, Default: 100.
1077
+ # @param start [String] Value of the continuation token found in the `next` property of the JSON object returned in the response.
1078
+ #
1079
+ # @return [Net::HTTPResponse]
1080
+ def get_aggregation_list(limit: nil, start: nil)
1081
+ channel_token_required
1082
+
1083
+ params = {limit: limit, start: start}.compact
1084
+ endpoint_path = "/bot/message/aggregation/list?" + URI.encode_www_form(params)
1085
+ get(endpoint, endpoint_path, credentials)
1086
+ end
1087
+
964
1088
  # Fetch data, get content of specified URL.
965
1089
  #
966
1090
  # @param endpoint_base [String]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: line-bot-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.0
4
+ version: 1.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - LINE Corporation
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-08-18 00:00:00.000000000 Z
11
+ date: 2022-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -106,7 +106,7 @@ homepage: https://github.com/line/line-bot-sdk-ruby
106
106
  licenses:
107
107
  - Apache-2.0
108
108
  metadata: {}
109
- post_install_message:
109
+ post_install_message:
110
110
  rdoc_options: []
111
111
  require_paths:
112
112
  - lib
@@ -121,8 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
121
  - !ruby/object:Gem::Version
122
122
  version: '0'
123
123
  requirements: []
124
- rubygems_version: 3.1.6
125
- signing_key:
124
+ rubygems_version: 3.3.3
125
+ signing_key:
126
126
  specification_version: 4
127
127
  summary: SDK of the LINE Messaging API
128
128
  test_files: []