質問編集履歴
3
初心者マーク
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|
2
タイトル変更
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
指定した語句を送ると設定した返答をするLINEbotをつくりたい
|
test
CHANGED
File without changes
|
1
具体的な内容に変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,47 +14,23 @@
|
|
14
14
|
|
15
15
|
現在の動作ではどのようなテキストを送信しても「**zaifでのビットコインの価格は○○○円です。**」 と返ってくるので、
|
16
16
|
|
17
|
-
こちらが指定した文字、例えば **zaif**, **ZAIF**, **ザイフ**などの文字
|
17
|
+
こちらが指定した文字、例えば **zaif**, **ZAIF**, **ザイフ**などの文字を送信したときに上記のように価格が返信され、それ以外の文字の場合には**「もう一度お願いします」**と反応ができるようにしたいと思っています。
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
|
21
|
+
[前回](https://teratail.com/questions/127208?sip=n0070000_019&uid=91270)のコードに下記のように追加変更しました
|
22
|
-
|
23
|
-
そもそも大部分から変えなくてはならないのでしょうか?
|
24
|
-
|
25
|
-
ご教授のほどお願いいたします
|
26
22
|
|
27
23
|
|
28
24
|
|
29
|
-
|
30
|
-
|
31
|
-
### line-bot-sdk-python
|
25
|
+
#### 前回のline-bot-sdk-pythonから変更した箇所
|
32
26
|
|
33
27
|
|
34
28
|
|
35
|
-
```
|
29
|
+
```Python
|
36
|
-
|
37
|
-
from flask import Flask, request, abort
|
38
30
|
|
39
31
|
|
40
32
|
|
41
|
-
|
33
|
+
------
|
42
|
-
|
43
|
-
LineBotApi, WebhookHandler
|
44
|
-
|
45
|
-
)
|
46
|
-
|
47
|
-
from linebot.exceptions import (
|
48
|
-
|
49
|
-
InvalidSignatureError
|
50
|
-
|
51
|
-
)
|
52
|
-
|
53
|
-
from linebot.models import (
|
54
|
-
|
55
|
-
MessageEvent, TextMessage, TextSendMessage,
|
56
|
-
|
57
|
-
)
|
58
34
|
|
59
35
|
|
60
36
|
|
@@ -62,59 +38,15 @@
|
|
62
38
|
|
63
39
|
|
64
40
|
|
65
|
-
zaif = ZaifPublicApi()
|
41
|
+
zaif = ZaifPublicApi() #追加
|
66
42
|
|
67
|
-
price = zaif.last_price('btc_jpy')
|
43
|
+
price = zaif.last_price('btc_jpy') #追加
|
68
44
|
|
45
|
+
|
69
46
|
|
47
|
+
------
|
70
48
|
|
71
|
-
|
49
|
+
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
|
76
|
-
|
77
|
-
handler = WebhookHandler('YOUR_CHANNEL_SECRET')
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
@app.route("/callback", methods=['POST'])
|
84
|
-
|
85
|
-
def callback():
|
86
|
-
|
87
|
-
# get X-Line-Signature header value
|
88
|
-
|
89
|
-
signature = request.headers['X-Line-Signature']
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
# get request body as text
|
94
|
-
|
95
|
-
body = request.get_data(as_text=True)
|
96
|
-
|
97
|
-
app.logger.info("Request body: " + body)
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
# handle webhook body
|
102
|
-
|
103
|
-
try:
|
104
|
-
|
105
|
-
handler.handle(body, signature)
|
106
|
-
|
107
|
-
except InvalidSignatureError:
|
108
|
-
|
109
|
-
abort(400)
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
return 'OK'
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
50
|
|
119
51
|
@handler.add(MessageEvent, message=TextMessage)
|
120
52
|
|
@@ -130,10 +62,18 @@
|
|
130
62
|
|
131
63
|
|
132
64
|
|
65
|
+
```
|
133
66
|
|
134
67
|
|
135
|
-
if __name__ == "__main__":
|
136
68
|
|
137
|
-
app.run()
|
138
69
|
|
70
|
+
|
71
|
+
`def handle_message`内に狙いをつけていろいろイジってみているのですが目的の動作ができません
|
72
|
+
|
73
|
+
どのように変更を加えればよろしいでしょうか?
|
74
|
+
|
75
|
+
そもそも元はオウム返しするサンプルボットのコードなので大幅な変更が必要なのでしょうか?
|
76
|
+
|
77
|
+
|
78
|
+
|
139
|
-
|
79
|
+
よろしくお願いします。
|