【LINE Messaging API】Pythonでリッチメニューを作成


リッチメニューの作成手順

createRichmenu.py
def createRichmenu():
    result = False
    try:
        # define a new richmenu
        rich_menu_to_create = RichMenu(
            size = RichMenuSize(width=1200, height=405),
            selected = True,
            name = 'richmenu for randomchat',
            chat_bar_text = 'TAP HERE',
            areas=[
                RichMenuArea(
                    bounds=RichMenuBounds(x=0, y=0, width=480, height=405),
                    action=MessageAction(text=config.REMOVE)
                ),
                RichMenuArea(
                    bounds=RichMenuBounds(x=480, y=0, width=720, height=405),
                    action=MessageAction(text=config.NEXT)
                )
            ]
        )
        richMenuId = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create)

        # upload an image for rich menu
        path = 'image path for richmenu'

        with open(path, 'rb') as f:
            line_bot_api.set_rich_menu_image(richMenuId, "image/jpeg", f)

        # set the default rich menu
        line_bot_api.set_default_rich_menu(richMenuId)

        result = True

    except Exception:
        result = False


    return result

1.リッチメニュー画像の詳細を定義

# define a new richmenu
    rich_menu_to_create = RichMenu(
        size = RichMenuSize(width=1200, height=405),
        selected = True,
        name = 'richmenu for randomchat',
        chat_bar_text = 'TAP HERE',
        areas=[
            RichMenuArea(
                bounds=RichMenuBounds(x=0, y=0, width=480, height=405),
                action=MessageAction(text=config.REMOVE)
            ),
            RichMenuArea(
                bounds=RichMenuBounds(x=480, y=0, width=720, height=405),
                action=MessageAction(text=config.NEXT)
            )
        ]
    )
    richMenuId = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create)

size
画像サイズ(pixels)は以下のみ対応
2500x1686, 2500x843, 1200x810, 1200x405, 800x540, 800x270

chat_bar_text
下図のようにチャットバーに表示される

areas
action範囲を各ボタンごとにRichMenuAreaを設定する

<RichMenuArea>
・bunds: 範囲指定:
・action: アクション指定

create rich menu API
APIを呼び、リッチメニューを作成する

richMenuId = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create)

2.リッチメニュー画像をアップロード

# upload an image for rich menu
    path = 'image path for richmenu'

    with open(path, 'rb') as f:
        line_bot_api.set_rich_menu_image(richMenuId, "image/jpeg", f)

3.リッチメニューをデフォルトに設定

# set the default rich menu
    line_bot_api.set_default_rich_menu(richMenuId)
以上で、リッチメニューの設定が完了する

他のAPI

リッチメニューリストを取得
リッチメニューIDが格納されたリストを取得する

rich_menu_list = line_bot_api.get_rich_menu_list()

リッチメニューを削除
削除するリッチメニューIDを指定する

line_bot_api.delete_rich_menu(rich_menu.rich_menu_id)

引用

【LINE Developers】リッチメニューを使う