当前位置: 首页 > 知识库问答 >
问题:

Facebook messenger聊天机器人与Flask和pymessenger

柯建业
2023-03-14

我已经创建了一个信使聊天机器人与烧瓶,pyMessenger和wit.ai.

我想添加facebook提供的模板(如按钮,添加图像和声音媒体)(https://developers.facebook.com/docs/messenger-platform/reference/template/button/)

有一些使用curl和json的东西我不明白。有人能帮助我吗?我应该把这些代码片段放在python代码的什么地方。

    @app.route('/', methods=['POST'])

request.get_json日志

if data['object'] == 'page':
    for entry in data['entry']:
        for messaging_event in entry['messaging']:

            sender_id = messaging_event['sender']['id']
            recipient_id = messaging_event['recipient']['id']

            if messaging_event.get('message'):
                if 'text' in messaging_event['message']:
                    messaging_text = messaging_event['message']['text']
                else:
                    messaging_text = 'no text'

                response = None

                entity, value = wit_response(messaging_text)

                if entity == 'newstype':
                    response = "OK. I will send you {} news".format(str(value))
                elif entity == 'cust_greet':
                    response = get_message()
                elif entity == 'cust_bye':
                    response = "Bye! Have a Good Day!".format(str(value))
                elif entity == 'cust_option':
                    response = "Option 1: Option 2:"
                bot.send_text_message(sender_id, response)


return "ok", 200

def log(消息): print(消息)sys.stdout.flush()

共有1个答案

程成天
2023-03-14

HTTP请求使用以下两种格式之一:

GET:所有请求信息都在url中

POST:一些信息通过JSON格式发送到url

我们在脸书应用编程接口中看到的是一个POST请求:网址被定义为

https://graph.facebook.com/v2.6/me/messages?access_token=

…下面的JSON部分中有POST请求信息

Curl是一个用于从终端发送HTTP请求的程序。如果安装Curl,您可以填写JSON/url信息,运行命令(发送POST请求),并看到收件人的按钮弹出。就像你希望你的聊天机器人做的那样!

然而,Curl是一个工具,而不是Python库!

要在Python中实现这一点,您可以通过Python的内置库发送请求,或者安装一个软件包(例如请求),查看“通过Python发送http请求”。

下面是一个例子(根据这个问题改编):

    from urllib.parse import urlencode
    from urllib.request import Request, urlopen

    # the url we are sending the request to
    url = "https://graph.facebook.com/v2.6/me/..."

    # the POST request data
    request_data = {
                     "recipient": {
                       "id": "<PSID>"
                     },
                     "message": {
                       "attachment": {
                           ...
                       }
                     }
                   }

    # create the request with the url and the data
    post_request = Request(url, urlencode(request_data).encode())

    # send it to Facebook! Response is the API response from Facebook
    response = urlopen(post_request).read().decode()

 类似资料:
  • 译者:毛毛虫 作者: Matthew Inkawhich 在本教程中,我们探索了一个好玩和有趣的循环序列到序列的模型用例。我们将用 Cornell Movie-Dialogs Corpus处的电影剧本来训练一个简单的聊天机器人。 在人工智能研究领域中对话模型模型是一个非常热门的话题。聊天机器人可以在各种设置中找到,包括客户服务应用和在线帮助。这些机器人通常由基于检索的模型提供支持,这些输出是某些形

  • 问题内容: 我的聊天应用程序遇到问题,我需要能够向特定用户发送私人消息,我可以选择该特定用户,但由于某些原因无法弄清楚如何发送私人消息。 在下面,您将找到我服务器的代码,请提供帮助: 问题答案: 首先在聊天室中添加用户,以便在您的私人聊天室中轻松找到用户 您用于加入私人会议室的客户端代码 Join Room 您在客户端的JavaScript代码 } 您的服务器端代码以在您的房间中添加用户 });

  • 本文向大家介绍Python QQBot库的QQ聊天机器人,包括了Python QQBot库的QQ聊天机器人的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python QQBot库的QQ聊天机器人的具体代码,供大家参考,具体内容如下 项目地址:https://github.com/pandolia/qqbot 1.安装 2.主动发出消息 3.根据事件回复消息 首先我们需要在命令行启动

  • 本文向大家介绍Python如何实现机器人聊天,包括了Python如何实现机器人聊天的使用技巧和注意事项,需要的朋友参考一下 今天午休的时候,无意之中看了一篇博客,名字叫Python实现机器人,感觉挺有的意思的。 于是用其写了一个简单的Python聊天,源码如下所示: 注意:如果出现某某模块找不到的时候,记得使用pip安装对应的模块。 效果图如下所示: 唯一美中不足的是英文,不过没关系,国内有图灵机

  • 聊天机器人是可行的 我:chatbot,你好! chatbot:你也好! 我:聊天机器人可行吗? chatbot:你不要怀疑这是天方夜谭,我不就在这里吗?世界上还有很多跟我一样聪明的机器人呢,你听过IBM公司在2010年就研发出来了的Watson问答系统吗?它可比我要聪明100倍呢 我:噢,想起来了,据说Watson在智力竞赛中竟然战胜了人类选手。但是我了解到它有一些缺陷:因为它还只是对信息检索技

  • 智能机器人可以做到的事情可以很复杂:文字、语音、视频识别与合成;自然语言理解、人机对话;以及驱动硬件设备形成的“机器”人。作为一个只有技术和时间而没有金钱的IT人士,我仅做自然语言和人工智能相关的内容,不涉及硬件,也不涉及不擅长的多媒体识别和合成。所以索性就做一个可以和你说话,帮你解决问题的聊天机器人吧。