¿Cómo conseguir imágenes / archivos adjuntos enviados por el usuario de Facebook Messenger bot a través de diálogo Flujo (API.AI)?

votos
1

He Chabot diálogo impulsado por flujo (API.AI) que requiere el usuario para enviar imágenes.

Sé que cuando el usuario hace clic sobre el botón Empezar en mensajero (al iniciar una conversación con el bot) en un intento de diálogo Flujo (API.AI) con la recepción del evento / FACEBOOK_WELCOME se disparará.

Cuando el usuario envía un mensaje de texto simple en un intento de diálogo Flujo (API.AI) con ese texto en el usuario dice se disparará.

Mi duda es que hay cualquier intento de diálogo Flujo (API.AI) que se desencadena cuando un usuario envía una imagen como archivo adjunto a la bot o hay alguna metodología para lograr ese tipo de funcionalidad.

Por favor, ayúdame con esto

Gracias por adelantado

Publicado el 22/10/2017 a las 14:54
fuente por usuario
En otros idiomas...                            


4 respuestas

votos
2

introducir descripción de la imagen aquíUtilice FACEBOOK_MEDIA en la sección de eventos de cualquier intención de DialogFlow (API.AI). Ahora cada vez que el usuario carga una imagen para el robot, la intención que contiene FACEBOOK_MEDIA en su sección de eventos se disparará y obtendrá una carga útil que contiene la imagen de la URL que le web hook.

Respondida el 25/10/2017 a las 12:01
fuente por usuario

votos
3

A continuación se muestra la respuesta que consigo cuando subo una imagen como un archivo adjunto en Facebook Messenger. Solía ​​dialogflow.com y integré mi manejador web hook en nodejs utilizando la función de AWS Lambda, API Gateway y AWS CloudWatch Registros. También puede servir web hook solicitud e imprimir los registros. Escribiendo console.log () realmente ayudó a imprimir el objeto enviada desde messenger facbook a nuestra web hook.

exports.handler = (event, context, callback) => {
  console.log(event);
  console.log(event.originalRequest.data.message.attachments[0].payload.url);
};

Va a obtener la URL objeto de evento impreso en los registros CloudWatch: Aquí, en el caso objeto de la URL es: https://scontent-ort2-2.xx.fbcdn.net/v/t34.18173-12/30776728_1969968496378460_1504397895_n.png?_nc_cat = 0 & _nc_ad = zm y _nc_cid = 0 & oh = 4aad83994a5501d1c50f7e2e6c7d50ea Salvo error u omisión = 5ADBEF72

{
    "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"
}
Respondida el 20/04/2018 a las 11:27
fuente por usuario

votos
0

Cuando se utiliza en WebhookClient DialogFlow, puede obtener URL de la imagen como esta:

const agent = new WebhookClient({ request, response });
const imageUrl = agent.request_.body.originalDetectIntentRequest.payload.data.message.attachments[0].payload.url;
Respondida el 03/06/2018 a las 20:25
fuente por usuario

votos
0

Mi solución:

exports.imageFb = function imageFb (request, response){
    console.log(request.body.originalDetectIntentRequest.payload.data.message.attachments[0].payload.url);
}           
Respondida el 08/06/2018 a las 22:17
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more