首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过对话流(API.AI)从Facebook messenger bot获取用户发送的图片/附件?

如何通过对话流(API.AI)从Facebook messenger bot获取用户发送的图片/附件?
EN

Stack Overflow用户
提问于 2017-10-23 01:54:46
回答 4查看 6.1K关注 0票数 2

我有由对话流(API.AI),这需要用户发送图像的Chabot供电。

我知道,当用户单击messenger中的Get Started按钮(同时开始与机器人对话)时,将触发带有欢迎/FACEBOOK_欢迎事件的intent in Dialog Flow (API.AI)。

当用户发送简单的文本消息时,将触发包含用户说的文本的意向对话流(API.AI)。

我的疑问是,当用户将图像作为附件发送到机器人时,对话流(API.AI)中是否有任何意图触发,或者是否有任何方法来实现这种功能。

请帮我弄一下这个

提前感谢

EN

回答 4

Stack Overflow用户

发布于 2017-10-25 23:01:18

在DialogFlow (API.AI)中的任何意图的事件部分中使用FACEBOOK_MEDIA。现在,每当用户将图像上传到机器人时,在其事件部分包含FACEBOOK_MEDIA的意图将被触发,您将获得一个有效负载,其中包含图像的URL到您的WebHook。

票数 3
EN

Stack Overflow用户

发布于 2018-04-20 22:27:23

以下是我将图片作为附件上传到facebook messenger时得到的响应。我使用了dialogflow.com,并使用AWS Lambda函数、API Gateway和AWS CloudWatch日志在nodejs中集成了我的webhook处理程序。您还可以提供webhook请求和打印日志。编写console.log()确实有助于打印从facbook messenger发送到我们的webhook的对象。

代码语言:javascript
运行
复制
exports.handler = (event, context, callback) => {
  console.log(event);
  console.log(event.originalRequest.data.message.attachments[0].payload.url);
};

您将在cloudwatch日志中打印事件对象url :在这里,事件对象中的url是:https://scontent-ort2-2.xx.fbcdn.net/v/t34.18173-12/30776728_1969968496378460_1504397895_n.png?_nc_cat=0&_nc_ad=z-m&_nc_cid=0&oh=4aad83994a5501d1c50f7e2e6c7d50ea&oe=5ADBEF72

代码语言:javascript
运行
复制
{
    "originalRequest": {
        "source": "facebook",
        "data": {
            "sender": {
                "id": "2037600292946778"
            },
            "recipient": {
                "id": "592499574453638"
            },
            "message": {
                "attachments": [
                    {
                        "payload": {
                            "url": "https://scontent-ort2-2.xx.fbcdn.net/v/t34.18173-12/30776728_1969968496378460_1504397895_n.png?_nc_cat=0&_nc_ad=z-m&_nc_cid=0&oh=4aad83994a5501d1c50f7e2e6c7d50ea&oe=5ADBEF72"
                        },
                        "type": "image"
                    }
                ],
                "mid": "mid.$cAAJAFU4_rqppFAhJFli4sL-nvI2y",
                "seq": 274
            },
            "timestamp": 1524222785882
        }
    },
    "id": "323b2069-1fb3-4643-9cab-a36562286069",
    "timestamp": "2018-04-20T11:13:06.117Z",
    "lang": "en",
    "result": {
        "source": "agent",
        "resolvedQuery": "FACEBOOK_MEDIA",
        "speech": "",
        "action": "",
        "actionIncomplete": false,
        "parameters": {},
        "contexts": [
            {
                "name": "facebook_media",
                "parameters": {},
                "lifespan": 0
            },
            {
                "name": "generic",
                "parameters": {
                    "facebook_sender_id": "2037600292946778"
                },
                "lifespan": 4
            }
        ],
        "metadata": {
            "intentId": "52d18e01-1ff2-4e35-af42-bc2de65fa38b",
            "webhookUsed": "true",
            "webhookForSlotFillingUsed": "false",
            "intentName": "attachment intent"
        },
        "fulfillment": {
            "speech": "Received an image",
            "messages": [
                {
                    "type": 0,
                    "speech": "Received an image"
                }
            ]
        },
        "score": 1
    },
    "status": {
        "code": 200,
        "errorType": "success",
        "webhookTimedOut": false
    },
    "sessionId": "d815740b-4f6d-432b-991d-c1125ceb2665"
}
票数 3
EN

Stack Overflow用户

发布于 2018-06-04 04:25:37

在DialogFlow中使用WebhookClient时,您可以获得如下图片url:

代码语言:javascript
运行
复制
const agent = new WebhookClient({ request, response });
const imageUrl = agent.request_.body.originalDetectIntentRequest.payload.data.message.attachments[0].payload.url;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46877394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档