通过 Dialogflow 聊天机器人打开 Facebook Messenger 摄像头

Turning on facebook messenger camera through Dialogflow chatbot

我在 Dialogflow 上创建了一个聊天机器人,它会告知用户我的(大)家庭成员的姓名以及他们的住所。我创建了一个带有 MySQL 的小型数据库,其中存储了这些数据,并根据用户与聊天机器人的交互,在适当的时候使用 PHP 脚本获取它们。

我已将此聊天机器人集成到 Facebook Messenger。我的问题如下:

我可以通过 Dialogflow 直接触发打开 Facebook Messenger 摄像头(而不使用任何其他前端摄像头)吗?

我之所以要开摄像头是为了让用户拍一张himself/herself的照片然后我会用一些计算机视觉库处理照片来推断照片上的这个人是不是我的一个家庭成员显然,我可以简单地创建另一个基本的前端,我将在其中打开相机,例如触发了一个名为 'Camera' 的意图,但我想知道是否可以直接在 Facebook Messenger 上执行此操作。

我在后端从 Dialogflow 收到的 json 响应仅包含以下 UI 功能:

    "surface": {
        "capabilities": [
            {
                "name": "actions.capability.MEDIA_RESPONSE_AUDIO"
            },
            {
                "name": "actions.capability.SCREEN_OUTPUT"
            },
            {
                "name": "actions.capability.AUDIO_OUTPUT"
            },
            {
                "name": "actions.capability.WEB_BROWSER"
            }
        ]
    } 

因此我的第一印象是无法直接通过 Dialoglfow(和 Facebook Messenger)打开相机。

我说的对吗?

嗯,你是对的......但可能不是你想的那样。

首先,您将无法打开 Facebook Messenger 摄像头,因为您没有使用 Facebook Messenger。您正在使用 Google 助手。目前,Google 助手没有定义将图像发送到您正在交互的操作的方法。 (它确实适用于 Google Lens,但目前无法将其提供给您。)

其次,您实际上不会 "turn on" 相机。如果用户通过 Messenger 相机向您发送图像,您可以通过查看 JSON 中的 originalRequest 字段来处理该图像,您在履行中应包含 message from Facebook,其中包含图片。