Python上的Messenger机器人

时间:2018-12-10 19:15:01

标签: python python-3.x flask bots messenger

我正在使用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通过将错误信息发送给漫游器而收到错误消息。

1 个答案:

答案 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

我现在想使用时间戳记,但老实说不知道如何。因此,例如,如果有一个用户,您很长时间没有发短信,则会收到“欢迎回来,我们想念您”消息。

我不确定这段代码如何与同时发短信的人一起使用。由于我使用了全局变量,可能是所有的越野车。如果您有任何想法,请帮助:)