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))