質問編集履歴

4

コードの修正

2021/11/29 03:42

投稿

PC_breakman
PC_breakman

スコア30

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  【申請A】
22
22
 
23
- oo月xx日 hh:mm~hh:mm
23
+ yyyy/mm/dd hh:mm ~ hh:mm
24
24
 
25
25
  ...のため
26
26
 

3

コードの修正

2021/11/29 03:42

投稿

PC_breakman
PC_breakman

スコア30

test CHANGED
File without changes
test CHANGED
@@ -210,7 +210,7 @@
210
210
 
211
211
  )
212
212
 
213
- str_work_date = event.postback.params['date']
213
+ str_work_date = event.postback.params['date'] # おそらくここでエラーが出ている...
214
214
 
215
215
  mode_work_date = re.sub("-", "/", str_work_date)
216
216
 

2

質問の修正

2021/11/29 01:40

投稿

PC_breakman
PC_breakman

スコア30

test CHANGED
@@ -1 +1 @@
1
- LineBotの日時選択アクションが表示されない
1
+ LineBotの日時選択アクションで取得したデータの扱い方分からない
test CHANGED
@@ -36,7 +36,25 @@
36
36
 
37
37
 
38
38
 
39
+ (任意の文字列を送信したら日付を入力するための日時選択アクションが返ってくる動作を想定していたのですが、bot画面上に日時選択アクションが表示されません。) <= datetimeのパッケージをインポートしていなかったのが原因でした。日時選択アクションは表示されるようになったのですが、取得した日付のデータの表示ができません。logを表示した際に出ていたエラーを以下に示します。
40
+
41
+
42
+
43
+ ```
44
+
45
+ func(event)
46
+
47
+ File "main.py", line 98, in handle_message
48
+
49
+ str_work_date = event.postback.params['date']
50
+
51
+ AttributeError: 'MessageEvent' object has no attribute 'postback'
52
+
53
+ ```
54
+
55
+
56
+
39
- 任意の文字列を送信した日付を入力するための日時選択アクションが返ってる動作を想定していが、bot画面上に日時選択アクションが表示されません。LineBotの作成をするのが初めてなので、おそらく何か勘違いしているのだと思っていろいろと調べたのですが原因が分かりませんでした。詳しい方がいらっしゃいましたら教えていただけると幸いです。
57
+ おそらくくデータが格納できていないかなと思っています。LineBotの作成をするのが初めてなので、おそらく何か勘違いしているのだと思っていろいろと調べたのですが原因が分かりませんでした。詳しい方がいらっしゃいましたら教えていただけると幸いです。
40
58
 
41
59
 
42
60
 
@@ -72,8 +90,12 @@
72
90
 
73
91
  )
74
92
 
93
+ import datetime
94
+
75
95
  import os
76
96
 
97
+ import re
98
+
77
99
 
78
100
 
79
101
  app = Flask(__name__)
@@ -96,6 +118,48 @@
96
118
 
97
119
 
98
120
 
121
+ @app.route("/")
122
+
123
+ def get_date_template():
124
+
125
+ date_template = TemplateSendMessage(
126
+
127
+ alt_text='作業日を選択せよ',
128
+
129
+ template=ButtonsTemplate(
130
+
131
+ text='このボタンを押してね',
132
+
133
+ title='作業日を選択せよ',
134
+
135
+ image_size='cover',
136
+
137
+ actions=[
138
+
139
+ DatetimePickerTemplateAction(
140
+
141
+ label='選択',
142
+
143
+ data='action=buy&itemid=1',
144
+
145
+ mode='date',
146
+
147
+ initial=str(datetime.date.today())
148
+
149
+ )
150
+
151
+ ]
152
+
153
+ )
154
+
155
+ )
156
+
157
+ return date_template
158
+
159
+
160
+
161
+
162
+
99
163
  @app.route("/callback", methods=['POST'])
100
164
 
101
165
  def callback():
@@ -136,39 +200,25 @@
136
200
 
137
201
  def handle_message(event):
138
202
 
139
- work_date = TemplateSendMessage(
203
+ work_date = get_date_template()
140
-
141
- alt_text='開始日時を入力',
204
+
142
-
143
- template=ButtonsTemplate(
144
-
145
- text='開始日時を入力',
146
-
147
- actions=[
148
-
149
- DatetimePickerTemplateAction(
205
+ line_bot_api.reply_message(
150
-
151
- label='選択',
206
+
152
-
153
- data='action=buy&itemid=1',
154
-
155
- mode='date',
207
+ event.reply_token,
156
-
208
+
157
- initial=str(datetime.date.today())
209
+ work_date
158
-
159
- )
160
-
161
- ]
162
-
163
- )
164
210
 
165
211
  )
166
212
 
213
+ str_work_date = event.postback.params['date']
214
+
215
+ mode_work_date = re.sub("-", "/", str_work_date)
216
+
167
217
  line_bot_api.reply_message(
168
218
 
169
- event.reply_token,
219
+ event.reply_token,
170
-
220
+
171
- work_date
221
+ TextSendMessage(text=mode_work_date)
172
222
 
173
223
  )
174
224
 

1

進捗の追加

2021/11/29 01:38

投稿

PC_breakman
PC_breakman

スコア30

test CHANGED
File without changes
test CHANGED
@@ -6,9 +6,9 @@
6
6
 
7
7
  1. リッチメニューから申請内容を選択(申請Aとします)
8
8
 
9
- 2. "申請A"がbotに送信される <== ここまではLine Official Accont Managerを使うことでうまくいきました
9
+ 2. "申請A"がbotに送信される <== ここまではLine Official Account Managerを使うことでうまくいきました
10
10
 
11
- 2. 作業日の入力 <== 現在これを行っています
11
+ 2. 作業日の入力 <== 現在これを行っています(とりあえずまだここまでしかやってません)
12
12
 
13
13
  3. 作業の開始時間と終了時間を入力
14
14