line-bot-api 1.2.2 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 883ff8a42d0bb8c9d6686329df0110986bbd98dd
4
- data.tar.gz: ea73ff86692858dfb602406fe322263b29939747
2
+ SHA256:
3
+ metadata.gz: a7c9c3b5ab7ef63c00c035e1e93b7561dd6aadd92fbf87c0e8b1121dab5bff23
4
+ data.tar.gz: 9bc0619998d2d987669af2370c3ee979d759dbdf6dbccb50e6f7eceffdb68f84
5
5
  SHA512:
6
- metadata.gz: 30bd0b9b41bcedfb04436ded6d59e98dfc9a7c980073383193e65718ac4d6c507834ef94456cde68a6eca56ae36ba889ed595faa73639fe8359d6fb6ba703fab
7
- data.tar.gz: 1e6f4243bd2363cbb4d685297300e5a07fe2139810ef61d177dde9ce25e6f877f90fddb3c7822131634e403ed6751f7b84cd9db8b531f5065114663e87274e43
6
+ metadata.gz: 3ebd489a9ba85e38081ec16313b94d43e712f8bc43cf9b55ac72539d0c8be6a9eb69cb81a37e57d0bc13d28dc16fab2b4be7dd0d55eedceaccb83319305d1c5c
7
+ data.tar.gz: de0a7308371d809fabd19b4b43400deb717d902c4aa58401d527bb6c2b6fe9ac4e8eb0ae85fdbfa9ec6d96ec245fd311f9706ffa268bbccb55e1eca464a9fdd1
data/README.md CHANGED
@@ -9,7 +9,7 @@ Line::Bot::API - SDK of the LINE Messaging API for Ruby.
9
9
 
10
10
  See the official API reference documentation for more information.
11
11
 
12
- https://devdocs.line.me/
12
+ https://developers.line.me/en/docs/messaging-api/reference/
13
13
 
14
14
  ## Synopsis
15
15
 
@@ -15,7 +15,7 @@
15
15
  module Line
16
16
  module Bot
17
17
  module API
18
- VERSION = "1.2.2"
18
+ VERSION = "1.2.3"
19
19
  end
20
20
  end
21
21
  end
@@ -223,6 +223,116 @@ module Line
223
223
  get(endpoint_path)
224
224
  end
225
225
 
226
+ # Get a list of all uploaded rich menus
227
+ #
228
+ # @return [Net::HTTPResponse]
229
+ def get_rich_menus
230
+ endpoint_path = '/bot/richmenu/list'
231
+ get(endpoint_path)
232
+ end
233
+
234
+ # Get a rich menu via a rich menu ID
235
+ #
236
+ # @param rich_menu_id [String] ID of an uploaded rich menu
237
+ #
238
+ # @return [Net::HTTPResponse]
239
+ def get_rich_menu(rich_menu_id)
240
+ endpoint_path = "/bot/richmenu/#{rich_menu_id}"
241
+ get(endpoint_path)
242
+ end
243
+
244
+ # Create a rich menu
245
+ #
246
+ # @param rich_menu [Hash] The rich menu represented as a rich menu object
247
+ #
248
+ # @return [Net::HTTPResponse]
249
+ def create_rich_menu(rich_menu)
250
+ request = Request.new do |config|
251
+ config.httpclient = httpclient
252
+ config.endpoint = endpoint
253
+ config.endpoint_path = '/bot/richmenu'
254
+ config.credentials = credentials
255
+ config.payload = rich_menu.to_json
256
+ end
257
+
258
+ request.post
259
+ end
260
+
261
+ # Delete a rich menu
262
+ #
263
+ # @param rich_menu_id [String] ID of an uploaded rich menu
264
+ #
265
+ # @return [Net::HTTPResponse]
266
+ def delete_rich_menu(rich_menu_id)
267
+ endpoint_path = "/bot/richmenu/#{rich_menu_id}"
268
+ delete(endpoint_path)
269
+ end
270
+
271
+ # Get the ID of the rich menu linked to a user
272
+ #
273
+ # @param user_id [String] ID of the user
274
+ #
275
+ # @return [Net::HTTPResponse]
276
+ def get_user_rich_menu(user_id)
277
+ endpoint_path = "/bot/user/#{user_id}/richmenu"
278
+ get(endpoint_path)
279
+ end
280
+
281
+ # Link a rich menu to a user
282
+ #
283
+ # @param user_id [String] ID of the user
284
+ # @param rich_menu_id [String] ID of an uploaded rich menu
285
+ #
286
+ # @return [Net::HTTPResponse]
287
+ def link_user_rich_menu(user_id, rich_menu_id)
288
+ request = Request.new do |config|
289
+ config.httpclient = httpclient
290
+ config.endpoint = endpoint
291
+ config.endpoint_path = "/bot/user/#{user_id}/richmenu/#{rich_menu_id}"
292
+ config.credentials = credentials
293
+ end
294
+
295
+ request.post
296
+ end
297
+
298
+ # Unlink a rich menu from a user
299
+ #
300
+ # @param user_id [String] ID of the user
301
+ #
302
+ # @return [Net::HTTPResponse]
303
+ def unlink_user_rich_menu(user_id)
304
+ endpoint_path = "/bot/user/#{user_id}/richmenu"
305
+ delete(endpoint_path)
306
+ end
307
+
308
+ # Download an image associated with a rich menu
309
+ #
310
+ # @param rich_menu_id [String] ID of an uploaded rich menu
311
+ #
312
+ # @return [Net::HTTPResponse]
313
+ def get_rich_menu_image(rich_menu_id)
314
+ endpoint_path = "/bot/richmenu/#{rich_menu_id}/content"
315
+ get(endpoint_path)
316
+ end
317
+
318
+ # Upload and attaches an image to a rich menu
319
+ #
320
+ # @param rich_menu_id [String] The ID of the rich menu to attach the image to
321
+ # @param file [File] Image file to attach rich menu
322
+ #
323
+ # @return [Net::HTTPResponse]
324
+ def create_rich_menu_image(rich_menu_id, file)
325
+ request = Request.new do |config|
326
+ config.httpclient = httpclient
327
+ config.endpoint = endpoint
328
+ config.endpoint_path = "/bot/richmenu/#{rich_menu_id}/content"
329
+ config.credentials = credentials
330
+ config.file = file
331
+ end
332
+
333
+ request.post
334
+ end
335
+
226
336
  # Fetch data, get content of specified URL.
227
337
  #
228
338
  # @param endpoint_path [String]
@@ -241,6 +351,24 @@ module Line
241
351
  request.get
242
352
  end
243
353
 
354
+ # Delete content of specified URL.
355
+ #
356
+ # @param endpoint_path [String]
357
+ #
358
+ # @return [Net::HTTPResponse]
359
+ def delete(endpoint_path)
360
+ raise Line::Bot::API::InvalidCredentialsError, 'Invalidates credentials' unless credentials?
361
+
362
+ request = Request.new do |config|
363
+ config.httpclient = httpclient
364
+ config.endpoint = endpoint
365
+ config.endpoint_path = endpoint_path
366
+ config.credentials = credentials
367
+ end
368
+
369
+ request.delete
370
+ end
371
+
244
372
  # Parse events from request.body
245
373
  #
246
374
  # @param request_body [String]
@@ -40,6 +40,11 @@ module Line
40
40
  uri = URI(url)
41
41
  http(uri).post(uri.request_uri, payload, header)
42
42
  end
43
+
44
+ def delete(url, header = {})
45
+ uri = URI(url)
46
+ http(uri).delete(uri.request_uri, header)
47
+ end
43
48
  end
44
49
  end
45
50
  end
@@ -20,7 +20,7 @@ require 'uri'
20
20
  module Line
21
21
  module Bot
22
22
  class Request
23
- attr_accessor :endpoint, :endpoint_path, :credentials, :to, :reply_token, :messages, :httpclient
23
+ attr_accessor :endpoint, :endpoint_path, :credentials, :to, :reply_token, :messages, :httpclient, :payload, :file
24
24
 
25
25
  # Initializes a new Request
26
26
  #
@@ -29,8 +29,10 @@ module Line
29
29
  yield(self) if block_given?
30
30
  end
31
31
 
32
- # @return [Hash]
32
+ # @return [String]
33
33
  def payload
34
+ return file.seek(0) && file.read if file.is_a? File
35
+ return @payload if @payload.is_a? String
34
36
  payload = {
35
37
  to: to,
36
38
  replyToken: reply_token,
@@ -42,8 +44,20 @@ module Line
42
44
 
43
45
  # @return [Hash]
44
46
  def header
47
+ content_type =
48
+ if file.is_a? File
49
+ case file.path
50
+ when /\.png\z/i then 'image/png'
51
+ when /\.jpe?g\z/i then 'image/jpeg'
52
+ else
53
+ raise ArgumentError.new("invalid file extension: #{file.path}")
54
+ end
55
+ else
56
+ 'application/json; charset=UTF-8'
57
+ end
58
+
45
59
  header = {
46
- 'Content-Type' => 'application/json; charset=UTF-8',
60
+ 'Content-Type' => content_type,
47
61
  'User-Agent' => "LINE-BotSDK-Ruby/#{Line::Bot::API::VERSION}",
48
62
  }
49
63
  hash = credentials.inject({}) { |h, (k, v)| h[k] = v.to_s; h }
@@ -69,6 +83,11 @@ module Line
69
83
  httpclient.post(endpoint + endpoint_path, payload, header)
70
84
  end
71
85
 
86
+ def delete
87
+ assert_for_deleting_message
88
+ httpclient.delete(endpoint + endpoint_path, header)
89
+ end
90
+
72
91
  def assert_for_getting_message
73
92
  raise ArgumentError, 'Wrong argument type `endpoint_path`' unless endpoint_path.is_a?(String)
74
93
  end
@@ -77,6 +96,9 @@ module Line
77
96
  raise ArgumentError, 'Wrong argument type `endpoint_path`' unless endpoint_path.is_a?(String)
78
97
  end
79
98
 
99
+ def assert_for_deleting_message
100
+ raise ArgumentError, 'Wrong argument type `endpoint_path`' unless endpoint_path.is_a?(String)
101
+ end
80
102
  end
81
103
  end
82
104
  end
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.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - LINE Corporation
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-30 00:00:00.000000000 Z
11
+ date: 2018-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -127,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  version: '0'
128
128
  requirements: []
129
129
  rubyforge_project:
130
- rubygems_version: 2.4.5
130
+ rubygems_version: 2.7.6
131
131
  signing_key:
132
132
  specification_version: 4
133
133
  summary: SDK of the LINE Messaging API