Elaborazione degli allegati di input

Se si sta costruendo un'applicazione di canale personalizzata utilizzando l'API REST, è possibile aggiungere il supporto per l'invio di file multimediali come allegati di input.

Il corpo della richiesta del metodo 'message supporta un array 'attachments, che può specificare fino a 5 oggetti multimediali. Gli oggetti multimediali inviati nella matrice di messaggi ( attachments ) possono essere intercettati ed elaborati da un webhook pre-messaggio configurato.

Per informazioni dettagliate su come accedere agli allegati tramite l'API, consultare la documentazione di riferimento dell'API.

Esempi

L'esempio seguente mostra il corpo della richiesta che viene inviato a un webhook pre-messaggio con un corpo del messaggio che include il testo Hello e un file immagine JPEG come allegato. L'applicazione che riceve la richiesta webhook può analizzare l'array 'attachments ed elaborare l'allegato, eventualmente modificando il messaggio, prima che venga elaborato dall'assistente.

{
  "event":{
    "name":"message_received"
  },
  "options":{
  },
  "payload":{
    "input":{
      "message_type":"text",
      "text":"Hello",
      "source":{
        "type":"user",
        "id":"00000000000000000000000000000000"
      },
      "options":{
        "suggestion_only":false,
        "return_context":true
      },
      "attachments": [
        {
          "media_type": "image/jpeg",
          "url": "https://example.com/yourphoto.jpeg"
        }
      ]
    },
    "context":{
      "global":{
        "system":{
          "user_id":"00000000000000000000000000000000"
        }
      },
      "integrations":{
        "text_messaging":{
          "assistant_phone_number":"+12223334444",
          "private":{
            "user_phone_number":"+14443332222",
            "request_id":"00000000-0000-0000-0000-000000000000",
            "ip_address":"172.10.10.10"
          }
        }
      }
    }
  }
}

Questo esempio mostra una richiesta stateful " /message inviata da un'applicazione di canale personalizzata che include un singolo allegato multimediale.

service
  .message({
    assistant_id: '{assistant_id}',
    session_id: '{session_id}',
    input: {
      message_type: 'text',
      text: 'Hello',
      attachments: [
        {
          'media_type': 'image/jpeg',
          'url': 'https://example.com/yourphoto.jpeg'
        }
      ]
    }
  })
  .then(res => {
    console.log(JSON.stringify(res, null, 2));
  })
  .catch(err => {
    console.log(err);
  });
response=service.message(
    assistant_id='{assistant_id}',
    session_id='{session_id}',
    input={
        'message_type': 'text',
        'text': 'Hello',
        'attachments': [
            {
                'media_type': 'image/jpeg',
                'url': 'https://example.com/yourphoto.jpeg'
            }
        ]
    }
).get_result()

print(json.dumps(response, indent=2))