line-bot-api 1.22.0 → 1.25.0
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/lib/line/bot/api/version.rb +1 -1
- data/lib/line/bot/client.rb +123 -16
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2b1b0e62ac703e48b3153c9214d0de1f7df4a394b485b1c1daf142744467ee4
|
4
|
+
data.tar.gz: 372be3bfd378274cc8f465ff1a16b41842110b9755d22a3bcfb5e4bd4323a6af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b56beefbf79c9db2154e97be3e9cd82bcdea9833a17fda92e0f38c4ada37c05394ec8942e18190e8bcbbbb2566ba28a83ee81fee71bbdeb181b6f0e8326d5074
|
7
|
+
data.tar.gz: 2da6d7329e36b8da62e20da99669273ff12f1478e3c6f13d892b98cfc75970b62acdc47fbdecb689066e2450574179c6c224dcf305cfbaccf754ae0872945857
|
data/lib/line/bot/api/version.rb
CHANGED
data/lib/line/bot/client.rb
CHANGED
@@ -145,6 +145,40 @@ module Line
|
|
145
145
|
post(oauth_endpoint, endpoint_path, payload, headers)
|
146
146
|
end
|
147
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
|
+
|
148
182
|
# Get all valid channel access token key IDs v2.1
|
149
183
|
#
|
150
184
|
# @param jwt [String]
|
@@ -161,19 +195,33 @@ module Line
|
|
161
195
|
get(oauth_endpoint, endpoint_path, headers)
|
162
196
|
end
|
163
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
|
+
|
164
211
|
# Push messages to a user using user_id.
|
165
212
|
#
|
166
213
|
# @param user_id [String] User Id
|
167
|
-
# @param messages [Hash
|
214
|
+
# @param messages [Hash, Array] Message Objects
|
168
215
|
# @param headers [Hash] HTTP Headers
|
216
|
+
# @param payload [Hash] Additional request body
|
169
217
|
# @return [Net::HTTPResponse]
|
170
|
-
def push_message(user_id, messages, headers: {})
|
218
|
+
def push_message(user_id, messages, headers: {}, payload: {})
|
171
219
|
channel_token_required
|
172
220
|
|
173
221
|
messages = [messages] if messages.is_a?(Hash)
|
174
222
|
|
175
223
|
endpoint_path = '/bot/message/push'
|
176
|
-
payload = { to: user_id, messages: messages }.to_json
|
224
|
+
payload = payload.merge({ to: user_id, messages: messages }).to_json
|
177
225
|
post(endpoint, endpoint_path, payload, credentials.merge(headers))
|
178
226
|
end
|
179
227
|
|
@@ -195,7 +243,7 @@ module Line
|
|
195
243
|
# client.reply_message(event['replyToken'], messages)
|
196
244
|
#
|
197
245
|
# @param token [String] Reply Token
|
198
|
-
# @param messages [Hash
|
246
|
+
# @param messages [Hash, Array] Message Objects
|
199
247
|
# @return [Net::HTTPResponse]
|
200
248
|
def reply_message(token, messages)
|
201
249
|
channel_token_required
|
@@ -209,24 +257,25 @@ module Line
|
|
209
257
|
|
210
258
|
# Send messages to multiple users using userIds.
|
211
259
|
#
|
212
|
-
# @param to [Array
|
213
|
-
# @param messages [Hash
|
260
|
+
# @param to [Array, String] Array of userIds
|
261
|
+
# @param messages [Hash, Array] Message Objects
|
214
262
|
# @param headers [Hash] HTTP Headers
|
263
|
+
# @param payload [Hash] Additional request body
|
215
264
|
# @return [Net::HTTPResponse]
|
216
|
-
def multicast(to, messages, headers: {})
|
265
|
+
def multicast(to, messages, headers: {}, payload: {})
|
217
266
|
channel_token_required
|
218
267
|
|
219
268
|
to = [to] if to.is_a?(String)
|
220
269
|
messages = [messages] if messages.is_a?(Hash)
|
221
270
|
|
222
271
|
endpoint_path = '/bot/message/multicast'
|
223
|
-
payload = { to: to, messages: messages }.to_json
|
272
|
+
payload = payload.merge({ to: to, messages: messages }).to_json
|
224
273
|
post(endpoint, endpoint_path, payload, credentials.merge(headers))
|
225
274
|
end
|
226
275
|
|
227
276
|
# Send messages to all friends.
|
228
277
|
#
|
229
|
-
# @param messages [Hash
|
278
|
+
# @param messages [Hash, Array] Message Objects
|
230
279
|
# @param headers [Hash] HTTP Headers
|
231
280
|
#
|
232
281
|
# @return [Net::HTTPResponse]
|
@@ -245,7 +294,7 @@ module Line
|
|
245
294
|
# API Documentation is here.
|
246
295
|
# https://developers.line.biz/en/reference/messaging-api/#send-narrowcast-message
|
247
296
|
#
|
248
|
-
# @param messages [Hash
|
297
|
+
# @param messages [Hash, Array]
|
249
298
|
# @param recipient [Hash]
|
250
299
|
# @param filter [Hash]
|
251
300
|
# @param limit [Hash]
|
@@ -331,15 +380,22 @@ module Line
|
|
331
380
|
|
332
381
|
# Get user IDs of who added your LINE Official Account as a friend
|
333
382
|
#
|
334
|
-
# @param
|
335
|
-
#
|
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
|
336
385
|
#
|
337
386
|
# @return [Net::HTTPResponse]
|
338
|
-
def get_follower_ids(
|
387
|
+
def get_follower_ids(deprecated_continuation_token = nil, start: nil, limit: nil)
|
339
388
|
channel_token_required
|
340
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
|
+
|
341
397
|
endpoint_path = "/bot/followers/ids"
|
342
|
-
endpoint_path += "?
|
398
|
+
endpoint_path += "?" + URI.encode_www_form(params) unless params.empty?
|
343
399
|
get(endpoint, endpoint_path, credentials)
|
344
400
|
end
|
345
401
|
|
@@ -491,6 +547,18 @@ module Line
|
|
491
547
|
post(endpoint, endpoint_path, rich_menu.to_json, credentials)
|
492
548
|
end
|
493
549
|
|
550
|
+
# Validate a rich menu object
|
551
|
+
#
|
552
|
+
# @param rich_menu [Hash] The rich menu represented as a rich menu object
|
553
|
+
#
|
554
|
+
# @return [Net::HTTPResponse]
|
555
|
+
def validate_rich_menu_object(rich_menu)
|
556
|
+
channel_token_required
|
557
|
+
|
558
|
+
endpoint_path = '/bot/richmenu/validate'
|
559
|
+
post(endpoint, endpoint_path, rich_menu.to_json, credentials)
|
560
|
+
end
|
561
|
+
|
494
562
|
# Delete a rich menu
|
495
563
|
#
|
496
564
|
# @param rich_menu_id [String] ID of an uploaded rich menu
|
@@ -990,6 +1058,45 @@ module Line
|
|
990
1058
|
put(endpoint, endpoint_path, body.to_json, credentials)
|
991
1059
|
end
|
992
1060
|
|
1061
|
+
# Get the per-unit statistics of how users interact with push messages and multicast messages.
|
1062
|
+
#
|
1063
|
+
# @param unit [String] Case-sensitive name of aggregation unit specified when sending the message.
|
1064
|
+
# @param from [String] Start date of aggregation period in UTC+9 with `yyyyMMdd` format
|
1065
|
+
# @param to [String] End date of aggregation period in UTC+9 with `yyyyMMdd` format.
|
1066
|
+
#
|
1067
|
+
# @return [Net::HTTPResponse]
|
1068
|
+
def get_statistics_per_unit(unit:, from:, to:)
|
1069
|
+
channel_token_required
|
1070
|
+
|
1071
|
+
params = {customAggregationUnit: unit, from: from, to: to}
|
1072
|
+
endpoint_path = "/bot/insight/message/event/aggregation?" + URI.encode_www_form(params)
|
1073
|
+
get(endpoint, endpoint_path, credentials)
|
1074
|
+
end
|
1075
|
+
|
1076
|
+
# Get the number of aggregation units used this month.
|
1077
|
+
#
|
1078
|
+
# @return [Net::HTTPResponse]
|
1079
|
+
def get_aggregation_info
|
1080
|
+
channel_token_required
|
1081
|
+
|
1082
|
+
endpoint_path = "/bot/message/aggregation/info"
|
1083
|
+
get(endpoint, endpoint_path, credentials)
|
1084
|
+
end
|
1085
|
+
|
1086
|
+
# Get the name list of units used this month for statistics aggregation.
|
1087
|
+
#
|
1088
|
+
# @param limit [Integer] Maximum number of aggregation units per request. Maximum: 100, Default: 100.
|
1089
|
+
# @param start [String] Value of the continuation token found in the `next` property of the JSON object returned in the response.
|
1090
|
+
#
|
1091
|
+
# @return [Net::HTTPResponse]
|
1092
|
+
def get_aggregation_list(limit: nil, start: nil)
|
1093
|
+
channel_token_required
|
1094
|
+
|
1095
|
+
params = {limit: limit, start: start}.compact
|
1096
|
+
endpoint_path = "/bot/message/aggregation/list?" + URI.encode_www_form(params)
|
1097
|
+
get(endpoint, endpoint_path, credentials)
|
1098
|
+
end
|
1099
|
+
|
993
1100
|
# Fetch data, get content of specified URL.
|
994
1101
|
#
|
995
1102
|
# @param endpoint_base [String]
|
@@ -1006,7 +1113,7 @@ module Line
|
|
1006
1113
|
#
|
1007
1114
|
# @param endpoint_base [String]
|
1008
1115
|
# @param endpoint_path [String]
|
1009
|
-
# @param payload [String
|
1116
|
+
# @param payload [String, NilClass]
|
1010
1117
|
# @param headers [Hash]
|
1011
1118
|
#
|
1012
1119
|
# @return [Net::HTTPResponse]
|
@@ -1019,7 +1126,7 @@ module Line
|
|
1019
1126
|
#
|
1020
1127
|
# @param endpoint_base [String]
|
1021
1128
|
# @param endpoint_path [String]
|
1022
|
-
# @param payload [String
|
1129
|
+
# @param payload [String, NilClass]
|
1023
1130
|
# @param headers [Hash]
|
1024
1131
|
#
|
1025
1132
|
# @return [Net::HTTPResponse]
|
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.
|
4
|
+
version: 1.25.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:
|
11
|
+
date: 2022-07-13 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.
|
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: []
|