我正在使用fbmq在python上制作一个用于Messenger的简单机器人,该机器人可以处理快速问题。
当用户在我的工作时间以外发短信到我的Facebook页面时,我让机器人发送了一条消息。
working_hours = [12,13,14,15,16]
if messaging_event.get('message') and (now.hour no in working_hours):
page.send(sender_id, "Sorry we are closed!"
由于人们通常会在多于一条消息中表达他们想要的内容,因此他们的聊天内容被垃圾邮件“我们是封闭消息!”
我不那么喜欢,因为我想给用户留下一个机会,让我明天可以回答。
您知道我可以使Bot发送“我们已关闭!”的任何方式吗?用户发送的每5条消息?
我尝试过:
count = 0
if (count / 3 == 1):
page.send(sender_id, "Sorry we are closed!")
count = 0
if messaging_event.get('message') and (now.hour no in working_hours):
count += 1
但是没有用。如果您有任何想法,我怎么能意识到我将非常感激:)
//我尝试了while循环。
for messaging_event in messaging:
sender_id = messaging_event['sender']['id']
recipient_id = messaging_event['recipient']['id']
messaging_event.get('postback'):
messaging_event.get('message'):
while (now.hour not in working_hours):
count = 0
if (count/3 == 1):
page.send(sender_id, "Hello")
if messaging_event.get('message'):
count += 1
但是没有用。 Facebook通过将错误信息发送给漫游器而收到错误消息。
答案 0 :(得分:0)
好吧,我没有找到更好的解决方案。
count = 0
working_hours = [ 8... ]
@app.route('/', methods=['POST'])
def webhook():
print(request.data)
data = request.get_json()
if data['object'] == "page":
entries = data['entry']
for entry in entries:
messaging = entry['messaging']
for messaging_event in messaging:
sender_id = messaging_event['sender']['id']
recipient_id = messaging_event['recipient']['id']
if now.hour not in working_hours:
global count
if (count == 3):
page.send(sender_id, "We are closed!")
if (count == 4):
count = 0
if messaging_event['message'].get('text'):
count += 1
我现在想使用时间戳记,但老实说不知道如何。因此,例如,如果有一个用户,您很长时间没有发短信,则会收到“欢迎回来,我们想念您”消息。
我不确定这段代码如何与同时发短信的人一起使用。由于我使用了全局变量,可能是所有的越野车。如果您有任何想法,请帮助:)