質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

1860閲覧

『LINE Messenger API を使用してリッチメニューの作成を行いたい。(Python)』

MasakiY

総合スコア0

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/12/22 17:04

前提・実現したいこと

『LINE Messenger API を使用してリッチメニューの作成を行いたい。(Python)』 

PythonでLINE Messenger APIを用い、リッチメニューを作成を試みているのですが、どうしてもRichMenu()関数を呼ぶことができません。
どなたか教えて下さい。。

発生している問題・エラーメッセージ

リッチメニューが表示されない。

エラーメッセージ

該当のソースコード

Python

1from flask import Flask, request, abort 2 3from linebot import ( 4 LineBotApi, WebhookHandler, 5) 6from linebot.exceptions import ( 7 InvalidSignatureError 8) 9from linebot.models import ( 10 FollowEvent, UnfollowEvent, MessageEvent, PostbackEvent, 11 TextMessage, TextSendMessage, TemplateSendMessage, 12 ButtonsTemplate, CarouselTemplate, CarouselColumn, 13 PostbackTemplateAction, 14 RichMenu, RichMenuArea, RichMenuBounds, RichMenuResponse, RichMenuSize,MessageAction,URIAction, 15) 16 17from time import time 18import urllib.request, json 19 20app = Flask(__name__) 21 22line_bot_api = LineBotApi('1mqtNHrV5cUgij7aIYbar+gEDVmfr0ZldHnvL+kG22mNTE2Ae/MU6wqt9E6WmUg1Qt31WUpDQsgVNqHkKhlJJJ/c6TuuphCtPhjuXnqZLo+OdcIV1bTRxULA7IW3QyUJd3gX+p9/vmNyMdTrCRQkKQdB04t89/1O/w1cDnyilFU=') 23handler = WebhookHandler('526bae9674105674aae217b7f5e37f6e') 24 25''' 26@app.route("/") 27def test(): 28 return "OK" 29''' 30 31 32@app.route("/callback", methods=['POST']) 33def callback(): 34 # get X-Line-Signature header value 35 signature = request.headers['X-Line-Signature'] 36 37 # get request body as text 38 body = request.get_data(as_text=True) 39 #app.logger.info("Request body: " + body) 40 41 # handle webhook body 42 try: 43 handler.handle(body, signature) 44 except InvalidSignatureError: 45 print("Invalid signature. Please check your channel access token/channel secret.") 46 abort(400) 47 48 return 'OK' 49 50 51#メニューの作成 52#@handler.add(FollowEvent) 53def createRichmenu(event): 54 reply_message(event, TextSendMessage(text= "ここまでは来たね。")) 55 # define a new richmenu 56 rich_menu_to_create = RichMenu( 57 size=RichMenuSize(width=2500, height=843), 58 selected=False, 59 name="Nice richmenu", 60 chat_bar_text="Tap here", 61 areas=[RichMenuArea( 62 bounds=RichMenuBounds(x=0, y=0, width=2500, height=843), 63 action=URIAction(label='Go to line.me', uri='https://line.me'))] 64 ) 65 66 reply_message(event, TextSendMessage(text= "設定もできてる!")) 67 68 rich_menu_id = line_bot_api.create_rich_menu(rich_menu=rich_menu_to_create) 69 70 reply_message(event, TextSendMessage(text= rich_menu_id)) 71 72 # upload an image for rich menu 73 path = '/Users/masaki/Desktop/開発/LINE_Bot/ugaku-menu.jpeg' 74 75 reply_message(event, TextSendMessage(text= "画像は設定できるかな?")) 76 77 with open(path, 'rb') as f: 78 line_bot_api.set_rich_menu_image(rich_menu_id, "image/jpeg", f) 79 80 # set the default rich menu 81 line_bot_api.set_default_rich_menu(rich_menu_id) 82 83 84 85#カルーセルの通知 86def show_carousel(user_id): 87 carousel_columns = [ 88 CarouselColumn( 89 text=value, 90 title=value+'の通知', 91 actions=[ 92 PostbackTemplateAction( 93 label='ON', 94 data=value+'1' 95 ), 96 PostbackTemplateAction( 97 label='OFF', 98 data=value+'0' 99 ) 100 ] 101 ) for key, value in ( 102 zip( 103 ('A', 'B', 'C', 'D', 'E'), 104 ('Binance', 'KuCoin', 'Hupbipro', 'Poloniex', 'Bittrex') 105 ) 106 ) 107 ] 108 message_template = CarouselTemplate(columns=carousel_columns) 109 line_bot_api.push_message( 110 to=user_id, 111 messages=TemplateSendMessage(alt_text='carousel template', template=message_template) 112 ) 113 114 115#通常メッセージ送信 116@handler.add(MessageEvent, message=TextMessage) 117 118def handle_message(event): 119 print("start") 120 if event.message.text == "FAQ": 121 reply_message(event, TextSendMessage(text= "何にお困りですか?以下の項目からお選びください。")) 122 123 #elif event.message.text == "button": 124 # send_button(event, event.source.user_id) 125 126 127 elif event.message.text == "menu": 128 createRichmenu(event) 129 130 elif event.message.text == "Carousel": 131 show_carousel(event.source.user_id) 132 133 else: 134 reply_message(event, TextSendMessage(text= event.message.text)) 135 136 137 138 139def reply_message(event, messages): 140 line_bot_api.reply_message( 141 event.reply_token, 142 messages = messages, 143 ) 144 145 146 147if __name__ == "__main__": 148 app.run()

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2020/12/23 00:15

> どうしてもRichMenu()関数を呼ぶことができません。 とはどういうふうになるんでしょうか。 そこらへんの具体的な説明を、質問文を編集して追記しましょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問