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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

1回答

1753閲覧

lineで定型文を返すbotを作成する

DaichiYasuda

総合スコア173

LINE Messaging API

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2018/04/30 12:29

編集2022/01/12 10:55

LINE Messaging APIを使ってbotを開発中です。

python,flask
ソースコードはqiitaを参考にして、変更したのはリプライの場所のみです。

実現したいこと
(me)おはようございます。
(bot)おはようございます
(me)今日もいい天気ですね。
(bot)そうですね!
上記の会話のようにある言葉に反応して、いくつかの定型文の会話を行いたいのですが、コードの書き方がわかりません。
if文の中に、さらにif文を書いたりしたのですがうまく動作しませんでした。

どなたかご教示お願い致します。
if文追記しました。

python

1 2@handler.add(MessageEvent, message=TextMessage) 3def message_text(event): 4 if 'おはよう' in event.message.text: 5 content = 'おはようございます' 6 elif 'こんにちは' in event.message.text: 7 content = 'こんにちは' 8 if 'いい天気' event.message.text: 9 content = "そうですね" 10 line_bot_api.reply_message( 11 event.reply_token, 12 TextSendMessage(text=content) 13 ) 14 else: 15 pass 16 else: 17 content = 'ごめんなさい、あまり喋れません' 18 line_bot_api.reply_message( 19 event.reply_token, 20 TextSendMessage(text=content) 21 ) 22

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

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

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

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

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

LouiS0616

2018/04/30 12:35

『うまく動作しない』とは、具体的にどう『うまく』動作しなかったのでしょうか?また、どのように『if文の中に、さらにif文を書いたりした』のでしょうか。
DaichiYasuda

2018/05/01 00:41

この場合、メッセージに「こんにちは。いい天気」が含まれていると「そうですね」と返ってくるのですが、実現したいこととは違います
LouiS0616

2018/05/01 01:09

どのように返ってくるのが理想なのでしょうか?
DaichiYasuda

2018/05/01 01:50

質問内容の「実現したいこと」に書いてあります
Lhankor_Mhy

2018/05/01 02:06

「実現したいこと」は、たとえば、「今」で始まり「。」で終わるメッセージに「そうですね!」と返す、と読み取ることも可能です。「実現したいこと」に書いてあるのはあくまで応答の例ですから、応答の条件についてきちんと整理をするのは質問者の仕事ではないでしょうか。
guest

回答1

0

質問内容の「実現したいこと」に書いてあります

それなら単にif文の階層の問題なのでは?

Python

1@handler.add(MessageEvent, message=TextMessage) 2def message_text(event): 3 if 'おはよう' in event.message.text: 4 content = 'おはようございます' 5 elif 'こんにちは' in event.message.text: 6 content = 'こんにちは' 7 elif 'いい天気' in event.message.text: 8 content = "そうですね" 9 else: 10 content = 'ごめんなさい、あまり喋れません' 11 12 line_bot_api.reply_message( 13 event.reply_token, 14 TextSendMessage(text=content) 15 )

投稿2018/05/01 01:56

LouiS0616

総合スコア35658

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

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

DaichiYasuda

2018/05/01 02:00

「いい天気」に反応して「そうですね」と返すのは「こんにちは」に反応したときのみにしたいです。 「おはよう」の後に「いい天気」には反応させたくないです
LouiS0616

2018/05/01 02:03

よくわからんです。ご提示の動作イメージは満たすと思いますが。 (me)おはようございます。 (bot)おはようございます (me)今日もいい天気ですね。 (bot)そうですね! 実際に動かした上の回答ではないですが、こうなりません?
DaichiYasuda

2018/05/01 02:06

この場合でも動くのは動きます。が順番が逆になっても動きますよね。 (me)今日もいい天気ですね。 (bot)そうですね! (me)おはようございます。 (bot)おはようございます 私が作りたいのは「おはようございます」という単語のみに反応して「そうですね」と返してほしいです
LouiS0616

2018/05/01 02:08

状態を記憶したいということでしょうか? しかもラインのボットの場合、送信間隔も気にしなければなりませんよね。
Lhankor_Mhy

2018/05/01 02:48

横からすみません。 > 「おはよう」の後に「いい天気」には反応させたくない > 「おはようございます」という単語のみに反応して「そうですね」と返してほしい 矛盾していると思います。 DaichiYasuda さんも相当混乱しているようですから、一度きちんと条件を整理してみては?
DaichiYasuda

2018/05/01 05:22

Lhankor_Mhyさん ありがとうございます。 ちょっと整理します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問