teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

初心者マーク

2018/05/26 19:55

投稿

cachio
cachio

スコア11

title CHANGED
File without changes
body CHANGED
File without changes

2

タイトル変更

2018/05/26 19:55

投稿

cachio
cachio

スコア11

title CHANGED
@@ -1,1 +1,1 @@
1
- 続・仮想通貨の価格かえすLINEbotをつくりたい
1
+ 指定した語句送ると設定した返答をLINEbotをつくりたい
body CHANGED
File without changes

1

具体的な内容に変更

2018/05/25 15:42

投稿

cachio
cachio

スコア11

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
- ### line-bot-sdk-python
15
+ ```Python
17
16
 
18
- ```python
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
- app = Flask(__name__)
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
- try:
24
+  ------
53
- handler.handle(body, signature)
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
- if __name__ == "__main__":
38
+ そもそも元はオウム返しするサンプルボットのコードなので大幅な変更が必要なのでしょうか?
39
+
69
- app.run()
40
+ よろしくお願いします。
70
- ```