質問編集履歴
3
初心者マーク
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
2
タイトル変更
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
指定した語句を送ると設定した返答をするLINEbotをつくりたい
|
body
CHANGED
File without changes
|
1
具体的な内容に変更
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,57 +6,23 @@
|
|
6
6
|
|
7
7
|
### 今回実現したいこと
|
8
8
|
現在の動作ではどのようなテキストを送信しても「**zaifでのビットコインの価格は○○○円です。**」 と返ってくるので、
|
9
|
-
こちらが指定した文字、例えば **zaif**, **ZAIF**, **ザイフ**などの文字
|
9
|
+
こちらが指定した文字、例えば **zaif**, **ZAIF**, **ザイフ**などの文字を送信したときに上記のように価格が返信され、それ以外の文字の場合には**「もう一度お願いします」**と反応ができるようにしたいと思っています。
|
10
10
|
|
11
|
-
|
11
|
+
[前回](https://teratail.com/questions/127208?sip=n0070000_019&uid=91270)のコードに下記のように追加変更しました
|
12
|
-
そもそも大部分から変えなくてはならないのでしょうか?
|
13
|
-
ご教授のほどお願いいたします
|
14
12
|
|
13
|
+
#### 前回のline-bot-sdk-pythonから変更した箇所
|
15
14
|
|
16
|
-
|
15
|
+
```Python
|
17
16
|
|
18
|
-
|
17
|
+
------
|
19
|
-
from flask import Flask, request, abort
|
20
18
|
|
21
|
-
from linebot import (
|
22
|
-
LineBotApi, WebhookHandler
|
23
|
-
)
|
24
|
-
from linebot.exceptions import (
|
25
|
-
InvalidSignatureError
|
26
|
-
)
|
27
|
-
from linebot.models import (
|
28
|
-
MessageEvent, TextMessage, TextSendMessage,
|
29
|
-
)
|
30
|
-
|
31
19
|
from zaifapi import ZaifPublicApi #追加
|
32
20
|
|
33
|
-
zaif = ZaifPublicApi()
|
21
|
+
zaif = ZaifPublicApi() #追加
|
34
|
-
price = zaif.last_price('btc_jpy')
|
22
|
+
price = zaif.last_price('btc_jpy') #追加
|
35
|
-
|
36
|
-
|
23
|
+
|
37
|
-
|
38
|
-
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
|
39
|
-
handler = WebhookHandler('YOUR_CHANNEL_SECRET')
|
40
|
-
|
41
|
-
|
42
|
-
@app.route("/callback", methods=['POST'])
|
43
|
-
def callback():
|
44
|
-
# get X-Line-Signature header value
|
45
|
-
signature = request.headers['X-Line-Signature']
|
46
|
-
|
47
|
-
# get request body as text
|
48
|
-
body = request.get_data(as_text=True)
|
49
|
-
app.logger.info("Request body: " + body)
|
50
|
-
|
51
|
-
# handle webhook body
|
52
|
-
|
24
|
+
------
|
53
|
-
|
25
|
+
|
54
|
-
except InvalidSignatureError:
|
55
|
-
abort(400)
|
56
|
-
|
57
|
-
return 'OK'
|
58
|
-
|
59
|
-
|
60
26
|
@handler.add(MessageEvent, message=TextMessage)
|
61
27
|
def handle_message(event):
|
62
28
|
line_bot_api.reply_message(
|
@@ -64,7 +30,11 @@
|
|
64
30
|
# TextSendMessage(text=event.message.text)) 削除
|
65
31
|
TextSendMessage(text="zaifでのビットコインの価格は" + int(price["last_price"]) + "円です。")) #追加
|
66
32
|
|
33
|
+
```
|
67
34
|
|
35
|
+
|
36
|
+
`def handle_message`内に狙いをつけていろいろイジってみているのですが目的の動作ができません
|
37
|
+
どのように変更を加えればよろしいでしょうか?
|
68
|
-
|
38
|
+
そもそも元はオウム返しするサンプルボットのコードなので大幅な変更が必要なのでしょうか?
|
39
|
+
|
69
|
-
|
40
|
+
よろしくお願いします。
|
70
|
-
```
|