Skip to content

Commit 6b7fecb

Browse files
authored
Fix richmenu for release. (#96)
1 parent cb3af08 commit 6b7fecb

File tree

10 files changed

+795
-670
lines changed

10 files changed

+795
-670
lines changed

README.rst

Lines changed: 73 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -241,61 +241,62 @@ https://developers.line.me/en/docs/messaging-api/reference/#leave-room
241241
242242
line_bot_api.leave_room(room_id)
243243
244-
create\_rich\_menu(self, data, timeout=None)
245-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
246-
Create a rich menu object through a group of given data and return rich menu id.
247-
The data is an rich menu object to create.
244+
get\_rich\_menu(self, rich\_menu\_id, timeout=None)
245+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
246+
247+
Gets a rich menu via a rich menu ID.
248+
249+
https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu
250+
251+
.. code:: python
252+
253+
rich_menu = line_bot_api.get_rich_menu(rich_menu_id)
254+
print(rich_menu.rich_menu_id)
255+
256+
create\_rich\_menu(self, rich_\menu, timeout=None)
257+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
258+
259+
Creates a rich menu.
260+
You must upload a rich menu image and link the rich menu to a user for the rich menu to be displayed. You can create up to 10 rich menus for one bot.
248261

249262
https://developers.line.me/en/docs/messaging-api/reference/#create-rich-menu
250263

251264
.. code:: python
252-
265+
253266
rich_menu_to_create = RichMenu(
254-
size=RichMenuBound(
255-
width=2500,
256-
height=1686
257-
),
258-
selected= False,
259-
name="nice richmenu",
260-
chatBarText="touch me",
261-
areas=[
262-
RichMenuArea(
263-
RichMenuBound(
264-
x=0,
265-
y=0,
266-
width=2500,
267-
height=1686
268-
),
269-
URITemplateAction(
270-
uri='line://nv/location'
271-
)
272-
)
273-
]
274-
)
275-
rich_menu_id = line_bot_api.create_rich_menu(data=rich_menu_to_create)
267+
size=RichMenuSize(width=2500, height=843),
268+
selected=False,
269+
name="Nice richmenu",
270+
chat_bar_text="Tap here",
271+
areas=[RichMenuArea(
272+
bounds=RichMenuBounds(x=0, y=0, width=2500, height=843),
273+
action=URIAction(label='Go to line.me', uri='https://line.me'))]
274+
)
275+
rich_menu_id = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create)
276276
print(rich_menu_id)
277277
278278
delete\_rich\_menu(self, rich\_menu\_id, timeout=None)
279279
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
280280

281-
Delete rich menu object through a given rich_menu_id.
281+
Deletes a rich menu.
282282

283283
https://developers.line.me/en/docs/messaging-api/reference/#delete-rich-menu
284284

285285
.. code:: python
286286
287287
line_bot_api.delete_rich_menu(rich_menu_id)
288288
289-
set\_rich\_menu\_image(self, rich\_menu\_id, content\_type, content, timeout=None)
290-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
289+
get\_rich\_menu\_id\_of\_user(self, user\_id, timeout=None)
290+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
291291

292-
Uploads and attaches an image to a rich menu through id and image path.
292+
Gets the ID of the rich menu linked to a user.
293293

294-
https://developers.line.me/en/docs/messaging-api/reference/#upload-rich-menu-image
294+
https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu-id-of-user
295295

296296
.. code:: python
297297
298-
line_bot_api.set_rich_menu_image(rich_menu_id, content_type, content)
298+
rich_menu_id = ine_bot_api.get_rich_menu_id_of_user(user_id)
299+
print(rich_menu_id)
299300
300301
link\_rich\_menu\_to\_user(self, user\_id, rich\_menu\_id, timeout=None)
301302
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -308,67 +309,55 @@ https://developers.line.me/en/docs/messaging-api/reference/#link-rich-menu-to-us
308309
309310
line_bot_api.link_rich_menu_to_user(user_id, rich_menu_id)
310311
311-
get\_rich\_menu\_list(self, timeout=None)
312-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
313-
314-
Gets a list of all uploaded rich menus.
315-
316-
https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu-list
317-
318-
.. code:: python
319-
320-
lst_rich_menu_obj = line_bot_api.get_rich_menu_list()
321-
for rich_menu_obj in lst_rich_menu_obj:
322-
print(rich_menu_obj.rich_menu_id)
323-
324-
get\_rich\_menu(self, rich\_menu\_id, timeout=None)
325-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
312+
unlink\_rich\_menu\_from\_user(self, user\_id, timeout=None)
313+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
326314

327-
Get rich menu object through a given Rich menu ID.
315+
Unlinks a rich menu from a user.
328316

329-
https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu
317+
https://developers.line.me/en/docs/messaging-api/reference/#unlink-rich-menu-from-user
330318

331319
.. code:: python
332320
333-
rich_menu_object = line_bot_api.get_rich_menu(rich_menu_id)
334-
print(rich_menu_obj.rich_menu_id)
321+
line_bot_api.unlink_rich_menu_from_user(user_id)
335322
336-
get\_rich\_menu\_id\_of\_user(self, user\_id, timeout=None)
337-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
323+
get\_rich\_menu\_image(self, rich\_menu\_id, timeout=None)
324+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
338325

339-
Gets the ID of the rich menu linked to a user.
326+
Downloads an image associated with a rich menu.
340327

341-
https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu-id-of-user
328+
https://developers.line.me/en/docs/messaging-api/reference/#download-rich-menu-image
342329

343330
.. code:: python
344331
345-
rich_menu_object = ine_bot_api.get_rich_menu_id_of_user(user_id)
346-
print(rich_menu_object.rich_menu_id)
332+
content = line_bot_api.get_rich_menu_image(rich_menu_id)
333+
with open(file_path, 'wb') as fd:
334+
for chunk in content.iter_content():
335+
fd.write(chunk)
347336
348-
unlink\_rich\_menu\_from\_user(self, user\_id, timeout=None)
349-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
337+
set\_rich\_menu\_image(self, rich\_menu\_id, content\_type, content, timeout=None)
338+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
350339

351-
Unlinks a rich menu from a user.
340+
Uploads and attaches an image to a rich menu.
352341

353-
https://developers.line.me/en/docs/messaging-api/reference/#unlink-rich-menu-from-user
342+
https://developers.line.me/en/docs/messaging-api/reference/#upload-rich-menu-image
354343

355344
.. code:: python
356345
357-
line_bot_api.unlink_rich_menu_from_user(user_id)
346+
with open(file_path, 'rb') as f:
347+
line_bot_api.set_rich_menu_image(rich_menu_id, content_type, f)
358348
359-
get_rich_menu_image(self, rich\_menu\_id, timeout=None)
360-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
349+
get\_rich\_menu\_list(self, timeout=None)
350+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
361351

362-
Downloads an image associated with a rich menu.
352+
Gets a list of all uploaded rich menus.
363353

364-
https://developers.line.me/en/docs/messaging-api/reference/#download-rich-menu-image
354+
https://developers.line.me/en/docs/messaging-api/reference/#get-rich-menu-list
365355

366356
.. code:: python
367357
368-
message_content = line_bot_api.get_rich_menu_image(rich_menu_id)
369-
with open(file_path, 'wb') as fd:
370-
for chunk in message_content.iter_content():
371-
fd.write(chunk)
358+
rich_menu_list = line_bot_api.get_rich_menu_list()
359+
for rich_menu in rich_menu_list:
360+
print(rich_menu.rich_menu_id)
372361
373362
※ Error handling
374363
^^^^^^^^^^^^^^^^
@@ -489,16 +478,16 @@ TemplateSendMessage - ButtonsTemplate
489478
title='Menu',
490479
text='Please select',
491480
actions=[
492-
PostbackTemplateAction(
481+
PostbackAction(
493482
label='postback',
494483
text='postback text',
495484
data='action=buy&itemid=1'
496485
),
497-
MessageTemplateAction(
486+
MessageAction(
498487
label='message',
499488
text='message text'
500489
),
501-
URITemplateAction(
490+
URIAction(
502491
label='uri',
503492
uri='http://example.com/'
504493
)
@@ -516,12 +505,12 @@ TemplateSendMessage - ConfirmTemplate
516505
template=ConfirmTemplate(
517506
text='Are you sure?',
518507
actions=[
519-
PostbackTemplateAction(
508+
PostbackAction(
520509
label='postback',
521510
text='postback text',
522511
data='action=buy&itemid=1'
523512
),
524-
MessageTemplateAction(
513+
MessageAction(
525514
label='message',
526515
text='message text'
527516
)
@@ -543,16 +532,16 @@ TemplateSendMessage - CarouselTemplate
543532
title='this is menu1',
544533
text='description1',
545534
actions=[
546-
PostbackTemplateAction(
535+
PostbackAction(
547536
label='postback1',
548537
text='postback text1',
549538
data='action=buy&itemid=1'
550539
),
551-
MessageTemplateAction(
540+
MessageAction(
552541
label='message1',
553542
text='message text1'
554543
),
555-
URITemplateAction(
544+
URIAction(
556545
label='uri1',
557546
uri='http://example.com/1'
558547
)
@@ -563,16 +552,16 @@ TemplateSendMessage - CarouselTemplate
563552
title='this is menu2',
564553
text='description2',
565554
actions=[
566-
PostbackTemplateAction(
555+
PostbackAction(
567556
label='postback2',
568557
text='postback text2',
569558
data='action=buy&itemid=2'
570559
),
571-
MessageTemplateAction(
560+
MessageAction(
572561
label='message2',
573562
text='message text2'
574563
),
575-
URITemplateAction(
564+
URIAction(
576565
label='uri2',
577566
uri='http://example.com/2'
578567
)
@@ -593,15 +582,15 @@ TemplateSendMessage - ImageCarouselTemplate
593582
columns=[
594583
ImageCarouselColumn(
595584
image_url='https://example.com/item1.jpg',
596-
action=PostbackTemplateAction(
585+
action=PostbackAction(
597586
label='postback1',
598587
text='postback text1',
599588
data='action=buy&itemid=1'
600589
)
601590
),
602591
ImageCarouselColumn(
603592
image_url='https://example.com/item2.jpg',
604-
action=PostbackTemplateAction(
593+
action=PostbackAction(
605594
label='postback2',
606595
text='postback text2',
607596
data='action=buy&itemid=2'

examples/flask-kitchensink/app.py

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
from linebot.models import (
3232
MessageEvent, TextMessage, TextSendMessage,
3333
SourceUser, SourceGroup, SourceRoom,
34-
TemplateSendMessage, ConfirmTemplate, MessageTemplateAction,
35-
ButtonsTemplate, ImageCarouselTemplate, ImageCarouselColumn, URITemplateAction,
36-
PostbackTemplateAction, DatetimePickerTemplateAction,
34+
TemplateSendMessage, ConfirmTemplate, MessageAction,
35+
ButtonsTemplate, ImageCarouselTemplate, ImageCarouselColumn, URIAction,
36+
PostbackAction, DatetimePickerAction,
3737
CarouselTemplate, CarouselColumn, PostbackEvent,
3838
StickerMessage, StickerSendMessage, LocationMessage, LocationSendMessage,
3939
ImageMessage, VideoMessage, AudioMessage, FileMessage,
@@ -96,65 +96,55 @@ def handle_text_message(event):
9696
profile = line_bot_api.get_profile(event.source.user_id)
9797
line_bot_api.reply_message(
9898
event.reply_token, [
99-
TextSendMessage(
100-
text='Display name: ' + profile.display_name
101-
),
102-
TextSendMessage(
103-
text='Status message: ' + profile.status_message
104-
)
99+
TextSendMessage(text='Display name: ' + profile.display_name),
100+
TextSendMessage(text='Status message: ' + profile.status_message)
105101
]
106102
)
107103
else:
108104
line_bot_api.reply_message(
109105
event.reply_token,
110-
TextMessage(text="Bot can't use profile API without user ID"))
106+
TextSendMessage(text="Bot can't use profile API without user ID"))
111107
elif text == 'bye':
112108
if isinstance(event.source, SourceGroup):
113109
line_bot_api.reply_message(
114-
event.reply_token, TextMessage(text='Leaving group'))
110+
event.reply_token, TextSendMessage(text='Leaving group'))
115111
line_bot_api.leave_group(event.source.group_id)
116112
elif isinstance(event.source, SourceRoom):
117113
line_bot_api.reply_message(
118-
event.reply_token, TextMessage(text='Leaving group'))
114+
event.reply_token, TextSendMessage(text='Leaving group'))
119115
line_bot_api.leave_room(event.source.room_id)
120116
else:
121117
line_bot_api.reply_message(
122118
event.reply_token,
123-
TextMessage(text="Bot can't leave from 1:1 chat"))
119+
TextSendMessage(text="Bot can't leave from 1:1 chat"))
124120
elif text == 'confirm':
125121
confirm_template = ConfirmTemplate(text='Do it?', actions=[
126-
MessageTemplateAction(label='Yes', text='Yes!'),
127-
MessageTemplateAction(label='No', text='No!'),
122+
MessageAction(label='Yes', text='Yes!'),
123+
MessageAction(label='No', text='No!'),
128124
])
129125
template_message = TemplateSendMessage(
130126
alt_text='Confirm alt text', template=confirm_template)
131127
line_bot_api.reply_message(event.reply_token, template_message)
132128
elif text == 'buttons':
133129
buttons_template = ButtonsTemplate(
134130
title='My buttons sample', text='Hello, my buttons', actions=[
135-
URITemplateAction(
136-
label='Go to line.me', uri='https://line.me'),
137-
PostbackTemplateAction(label='ping', data='ping'),
138-
PostbackTemplateAction(
139-
label='ping with text', data='ping',
140-
text='ping'),
141-
MessageTemplateAction(label='Translate Rice', text='米')
131+
URIAction(label='Go to line.me', uri='https://line.me'),
132+
PostbackAction(label='ping', data='ping'),
133+
PostbackAction(label='ping with text', data='ping', text='ping'),
134+
MessageAction(label='Translate Rice', text='米')
142135
])
143136
template_message = TemplateSendMessage(
144137
alt_text='Buttons alt text', template=buttons_template)
145138
line_bot_api.reply_message(event.reply_token, template_message)
146139
elif text == 'carousel':
147140
carousel_template = CarouselTemplate(columns=[
148141
CarouselColumn(text='hoge1', title='fuga1', actions=[
149-
URITemplateAction(
150-
label='Go to line.me', uri='https://line.me'),
151-
PostbackTemplateAction(label='ping', data='ping')
142+
URIAction(label='Go to line.me', uri='https://line.me'),
143+
PostbackAction(label='ping', data='ping')
152144
]),
153145
CarouselColumn(text='hoge2', title='fuga2', actions=[
154-
PostbackTemplateAction(
155-
label='ping with text', data='ping',
156-
text='ping'),
157-
MessageTemplateAction(label='Translate Rice', text='米')
146+
PostbackAction(label='ping with text', data='ping', text='ping'),
147+
MessageAction(label='Translate Rice', text='米')
158148
]),
159149
])
160150
template_message = TemplateSendMessage(
@@ -163,13 +153,13 @@ def handle_text_message(event):
163153
elif text == 'image_carousel':
164154
image_carousel_template = ImageCarouselTemplate(columns=[
165155
ImageCarouselColumn(image_url='https://via.placeholder.com/1024x1024',
166-
action=DatetimePickerTemplateAction(label='datetime',
167-
data='datetime_postback',
168-
mode='datetime')),
156+
action=DatetimePickerAction(label='datetime',
157+
data='datetime_postback',
158+
mode='datetime')),
169159
ImageCarouselColumn(image_url='https://via.placeholder.com/1024x1024',
170-
action=DatetimePickerTemplateAction(label='date',
171-
data='date_postback',
172-
mode='date'))
160+
action=DatetimePickerAction(label='date',
161+
data='date_postback',
162+
mode='date'))
173163
])
174164
template_message = TemplateSendMessage(
175165
alt_text='ImageCarousel alt text', template=image_carousel_template)

0 commit comments

Comments
 (0)