質問編集履歴

1

誤字

2020/05/01 06:39

投稿

yoquo
yoquo

score0

test CHANGED
@@ -1 +1 @@
1
- テキストファイル読み込む
1
+ オウム返しのLINEbot作りたいです。
test CHANGED
@@ -1,3 +1,197 @@
1
- pythoの初心者です。 下記の意味が理解できません。教えて下さ
1
+ ### 前提・実現したこと
2
2
 
3
+
4
+
5
+ ただいまLINEbotでオウム返しのbotを作っています。
6
+
7
+ 現在やったこと
8
+
9
+ ・LINEdevelopperでLINEbotを作成
10
+
11
+ ・オウム返しのフレームワークがFlaskのpythonプログラムを用意
12
+
3
- 「解析たいデータをテキストファイルか読み込みい場合があります。ファイルを開くとファイルオブジェクトなります。このファイルオブジェクトに対して読み書を行います。
13
+ ・herokuでサーブても、Procfile、runtime.txt、requirement.txtファイルも用意してbuild-succeeded、deployまででいます。
14
+
15
+
16
+
17
+
18
+
19
+ ```ここに言語を入力
20
+
21
+ git init
22
+
23
+
24
+
25
+ heroku git:remote -a アプリ名
26
+
27
+
28
+
29
+ git add .
30
+
31
+
32
+
33
+ git commit -m "***"
34
+
35
+
36
+
37
+ git push herouk master
38
+
39
+ ```
40
+
41
+
42
+
43
+
44
+
45
+ ・herokuでConfig Varsを作成し、チャンネルシークレットとチャンネルアクセストークンも指定してあります。
46
+
47
+
48
+
49
+
50
+
51
+ ```Profile
52
+
53
+ web:python main.py
54
+
55
+ ```
56
+
57
+ runtime.txtファイルが
58
+
59
+ ```
60
+
61
+ python-3.8.2
62
+
63
+ ```
64
+
65
+
66
+
67
+ requirement.txtファイルが
68
+
69
+ ```
70
+
71
+ Flask==1.1.2
72
+
73
+ line-bot-sdk==1.16.0
74
+
75
+ ```
76
+
77
+
78
+
79
+
80
+
81
+ ### 発生している問題・エラーメッセージ
82
+
83
+
84
+
85
+ 発生している問題としては、
86
+
87
+ ・LINEbotに問いかけても、オウム返ししてくれない。
88
+
89
+ ・コマンドでheroku openをすると
90
+
91
+ ```
92
+
93
+ An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
94
+
95
+ heroku logs --tail
96
+
97
+ ```
98
+
99
+ ### 該当のソースコード
100
+
101
+
102
+
103
+ ```python
104
+
105
+ from flask import Flask,request,abort
106
+
107
+ from linebot import LineBotApi,WebhookHandler
108
+
109
+ from linebot.exceptions import InvalidSignatureError
110
+
111
+ from linebot.models import MessageEvent,TextMessage,TextSendMessage
112
+
113
+ import os
114
+
115
+
116
+
117
+ app=Flask(__name__)
118
+
119
+ #環境変数の取得
120
+
121
+ YOUR_CHANNEL_ACCESS_TOKEN="アクセストークンを入力"
122
+
123
+ YOUR_CHANNEL_SECRET="Channel Secretを入力"
124
+
125
+ line_bot_api=LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
126
+
127
+ handler=WebhookHandler(YOUR_CHANNEL_SECRET)
128
+
129
+
130
+
131
+ @app.route("/callback",methods=["POST"])
132
+
133
+ def callback():
134
+
135
+ signature=request.headers["X-Line-Signature"]
136
+
137
+
138
+
139
+ body=request.get_data(as_text=True)
140
+
141
+ app.logger.info("Request body"+body)
142
+
143
+
144
+
145
+ try:
146
+
147
+ handler.handle(body,signature)
148
+
149
+ except InvalidSignatureError:
150
+
151
+ abort(400)
152
+
153
+ return "OK"
154
+
155
+
156
+
157
+ @handler.add(MessageEvent,message=TextMessage)
158
+
159
+ def handle_message(event):
160
+
161
+ line_bot_api.reply_message(event.reply_token,TextSendMessage(text=event.message.text))
162
+
163
+
164
+
165
+ if __name__=="__main__":
166
+
167
+ port=int(os.getenv("PORT",5000))
168
+
169
+ app.run(host="0.0.0.0",port=port)
170
+
171
+ ```
172
+
173
+
174
+
175
+ ### 試したこと
176
+
177
+
178
+
179
+ 試したこととして
180
+
181
+ ・LINEbotのチャンネルシークレットとチャンネルアクセストークンが間違ってないかのチェック
182
+
183
+ ・webhookのURLが間違えてないかチェック
184
+
185
+  →LINEbotのコンソールでWebhook設定を見ると「https://アプリ名.herokuapp.com/callback」となっていました。
186
+
187
+
188
+
189
+
190
+
191
+ ただ、pythonプログラムは[こちらの記事](https://qiita.com/Dexctersu/items/2243db615a1be7186acc)からのコピペで正しいかどうか自分で読むことができていません。
192
+
193
+
194
+
195
+
196
+
197
+ **どなたか、他に間違えていそうなところが分かる方がいましたら、指摘していただけると幸いです。**