respond-io
New
🚀 TikTok Business Messaging è dal vivo! Trasforma le conversazioni in conversioni senza soluzione di continuità. Scopri di più.
arrow-icon

Home >

Canali >
Canale Personalizzato >
Inizio Rapido Canale Personalizzato

Inizio Rapido Canale Personalizzato

Avatar
JQ Lee
· 04 Apr 2025
4 min di lettura

Questa integrazione consente al team di chattare con i propri clienti su qualsiasi canale di messaggistica tramite un'implementazione personalizzata.

Connessione di un canale personalizzato

Step 1: Vai a Impostazioni > Canali

Step 2: Click Add Channel > Custom Channel > Connect

Step 3: Inserisci l'URL di destinazione Webhook dove verranno inviati i messaggi in uscita.

Step 4: Selezionare il tipo di ID per il canale > fare clic su Next

I tipi di ID vengono utilizzati per l'identificazione dell'utente e vengono utilizzati per comunicare con il server di integrazione personalizzato.

Ci sono due tipi di ID disponibili:

  1. Numero di telefono: Usalo se il fornitore di servizi di messaggistica riconosce i contatti in base al proprio numero di telefono.

    1. Formato del campione: +60177872890

  2. ID Personalizzato: Usalo se il provider di servizi di messaggistica riconosce Contatti basati su un ID generato su misura.

    1. La lunghezza massima del carattere è 50.

    2. A-Z,a-z,0-9,_,=,+,/e@sono ammessi.

Step 5: La seguente finestra di dialogo fornirà l'ID canale,API Token, eWebhook URLes.

  1. ID canale:gfd8g7fd89dgfd

  2. API Token:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd

  3. URL Webhook:https://app.respond.io/custom/channel/webhook/

    Utilizzando un tipo di ID numero di telefono consente di avviare una conversazione e inviare il primo messaggio a un contatto.

Passa i messaggi a respond.io

Webhook URLviene utilizzato per pubblicare i messaggi,Messaggistica EchoeseMessaggistica Ricevutealla risposta. o piattaforma.

Il codice fornito attiverà il webhook su respond.io, creando un Contatto se necessario e salvando il messaggio sotto quel contatto.

Esempio di messaggi

curl -X POST \\  
  https://app.respond. o/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "message": {  
        "type": "text",  
        "testo": "Ciao Mondo"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "countryCode": "MY",  
    "email": "john@respond. o",  
    "telefono": "+60177872890",  
    "lingua": "it"  
  }  
}'

Esempio di Echi di Messaggistica

curl -X POST \\  
  https://app.respond. o/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message\_echo",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "message": {  
        "type": "text",  
        "testo": "Ciao Mondo"  
      }  
    }  
  \],  
  "contact": {  
    "firstName": "John",  
    "lastName": "Doe",  
    "profilePic": "",  
    "countryCode": "MY",  
    "email": "john@respond. o",  
    "telefono": "+60177872890",  
    "lingua": "it"  
  }  
}'

Esempio di ricevimento di messaggi

curl -X POST \\  
  https://app.respond. o/custom/channel/webhook/ \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
  "channelId": "gfd8g7fd89dgfd",  
  "contactId": "+60177872890",  
  "events": \[  
    {  
      "type": "message\_status",  
      "mId": "xcvzzxcxczxczxc",  
      "timestamp": 2132131321000,  
      "status": {  
        "value": "sent delivered read failed",  
        "message": "Errore: Invio non riuscito a causa di token non valido"  
      }  
  \]  
}'

Campo

Descrizione

Convalida

channelId

Id Univoco Del Canale

Obbligatorio. Campo unico. Viene generato da respond.io.

contactId

Id Contatto Unico

Obbligatorio. ID contatto unico respond.io. Massimo 50 caratteri.

events.type

Tipo Di Evento

Obbligatorio. Tipo disponibile: messaggio, message_echo e message_status.

events.mld

Id Messaggio

Obbligatorio. ID messaggio univoco. Massimo 50 caratteri.

events.timestamp

Tempo Epoch UNIX (millisecondi)

Obbligatorio. Tempo dell'evento che ha innescato la richiamata.

events.message.type

Tipo Di Messaggio

Obbligatorio. Tipi di messaggi disponibili: testo, allegato, posizione e quick_reply. Consultare la sezione Tipo messaggio per altri campioni di tipo messaggio.

events.message.text

Testo Messaggio

Obbligatorio. Lunghezza massima 7.000 caratteri.

events.status.value

Testo

Richiesto se event.type è stato message_status. Valori di stato disponibili: inviati, consegnati, letti e falliti.

events.status.message

Testo

Richiesto se events.status.value non è riuscito.

contact.firstName

Nome

Facoltativo. Massimo 50 caratteri.

contact.lastName

Cognome

Facoltativo. Massimo 50 caratteri.

contact.profilePic

Url Del Profilo Pic

Facoltativo. La dimensione dell'avatar non deve essere superiore a 100 kb. Raccomandato 720x720.

contact.locale

Codice Locale

Facoltativo. Fare riferimento qui per l'elenco di valori.

contact.countryCode

Codice Paese

Facoltativo. Codice paese 2 lettere - Codice ISO ALPHA-2.

contact.timezone

Fuso Orario

Facoltativo. (min: -24) (max: 24).

contact.email

Indirizzo Email

Facoltativo. Massimo 50 caratteri.

contact.phone

Numero Di Telefono

Facoltativo. Massimo 18 caratteri.

contact.language

Lingua

Facoltativo. ISO 639-1.

Risposta - Successo (stato HTTP → 200)

"OK"

Gestisci messaggi in uscita da respond.io

respond.io chiamerà l'endpoint<API Base URL>/message

Assicurati di applicare il codicedel messaggioin uscita sul percorso/messagedel tuo server web.

Ecco l'esempio cURL di respond.io che chiama l'endpoint:

curl -X POST \\  
  /message \\  
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\  
  -H 'cache-control: no-cache' \\  
  -H 'content-type: application/json' \\  
  -d '{  
	 "channelId": "gfd8g7fd89dgfd",  
	 "contactId": "+60177872890",  
	 "message": {  
		  "type": "text",  
		  "text": "Ciao Mondo"  
	 }  
}'

Risposta - Successo (stato HTTP → 200)

{  
	"mId": "1640141607842"  
}

L'autenticazione deve avvenire all'endpoint prima di inviare il messaggio al provider di servizi di messaggistica.

Qui'è un esempio di utilizzo di un middleware espresso per questo scopo:

const {validationResult} = require('express-validator');

const validateToken = (req, res, next) => {
    const apiToken = <>
    const bearerToken = req. eaders.authorization;

    if (!bearerToken)
        return res. end(401)

    const token = bearerToken.substring(7, bearerToken. ength);

    if (apiToken !== token) {
        return res. end(401)
    }
    next();
};

module.exports = {
    validateToken
};

Noi've abbiamo incluso un esempio di Canale Personalizzato che puoi testare sul tuo server. Scopri il nostro progetto GitHub qui.

Tipo Di Messaggi

Esempio di testo

{  
  "type": "text",  
  "text": "Welcome to respond.io",  
}

Campo

Descrizione

Convalida

tipo

Tipo Di Messaggio

Obbligatorio. testo

testo

Testo Messaggio

Obbligatorio. Lunghezza massima 7.000 caratteri.

Esempio di file multimediali

{  
  "type": "attachment",  
  "attachment": {  
    "type": "image video audio file",  
    "url": "https://abc/japan. ng",  
    "mimeType": "image/png",  
    "fileName":"logo aziendale. ng",  
    "description": "ultimo logo aziendale"  
  }  
}

Campo

Descrizione

Convalida

tipo

Tipo Di Messaggio

Obbligatorio. allegato.

allegato.type

Tipo Di Allegato

Obbligatorio. Tipi di allegati disponibili: immagine, video, audio e file.

attachment.url

URL

Obbligatorio. Massimo 2.000 caratteri. Assicurarsi che sia un link pubblico in modo che gli utenti o i contatti siano in grado di vedere il contenuto.

attachment.mimeType

Tipo MIME dell' allegato

Facoltativo

allegato.fileName

Nome File

Facoltativo. Il nome del file dovrebbe includere un'estensione. Max 256 caratteri (inclusa l'estensione del file). L'invio di un file senza l'estensione o con l'estensione sbagliata potrebbe rendere impossibile l'apertura del file al contatto o all'utente.

allegato.descrizione

Descrizione File

Facoltativo. Massimo 256 caratteri. Applicabile solo per allegato.type = immagine.

Assicurati che l'URL dell'allegato sia't scaricato forzatamente dal browser. L'intestazione della risposta HTTP's Content-Disposition dovrebbe avere il valore predefinito, che è inline.

Esempio di posizione

{  
  "type": "location",  
  "latitude": 0.123456,  
  "longitude": -0.1234,  
  "address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"  
}

Campo

Descrizione

Convalida

tipo

Tipo Di Messaggio

Obbligatorio. posizione.

latitudine

Coordinate

Obbligatorio. Latitudine (±90°) entro intervalli validi.

longtitude

Coordinate

Obbligatorio. Longitudine (±180°) entro intervalli validi.

indirizzo

Indirizzo Posizione

Facoltativo. Massimo 256 caratteri.

Esempio di risposta rapida

{  
  "type": "quick\_reply",  
  "title": "Seleziona la tua lingua preferita",    
  "replies": \[  
    "Malay",  
    "English"  
  \]  
}

Campo

Descrizione

Convalida

tipo

Tipo Di Messaggio

Obbligatorio. quick_reply.

titolo

Titolo Risposta Rapida

Obbligatorio. Massimo 256 caratteri.

risposte

Testo Rispondi

Obbligatorio. Max 10 risposte con max. 256 caratteri per ogni risposta.

Codici Di Errore

Error (HTTP Status → 4xx)

Configurazione Canale

Step 1: Click Settings > Channels

Passo 2: Individua il canale personalizzato > clicca Gestisci

Passo 3: Nella pagina Configurazione personalizzata dei canali vedrai le seguenti configurazioni:

  • Icona Canale - Carica un'immagine che serve come icona per il tuo canale personalizzato.

  • Nome del canale - Il nome del canale può essere modificato ed è usato internamente per identificare il canale.

  • URL Webhook per il messaggio in uscita — L'URL webhook per i messaggi in uscita a questo canale.

  • URL del Webhook per il messaggio in arrivo — L'URL del webhook per i messaggi in arrivo a questo canale.

  • ID Type — Questi sono utilizzati per l'identificazione dell'utente e sono utilizzati per comunicare con il server di integrazione personalizzato.

  • ID Canale — Unico ID Canale per identificare il tuo canale personalizzato.

  • API Token — Un identificatore univoco utilizzato per autenticare un utente per accedere a un'API.

Step 4: Fare clic su Salva le modifiche per aggiornare la configurazione personalizzata del canale.

FAQ e Risoluzione dei Problemi

Posso collegare chat da altre piattaforme utilizzando un canale personalizzato?

Sì, puoi. Ecco tre passi da seguire:

  1. In respond.io, inserisci l'URL di destinazione webhook dall'altra piattaforma nel campo Webhook URL for Incoming message.

  2. Nell'altra piattaforma, imposta un URL webhook che punta a respond.io, permettendo ai Contatti di inviarti dei messaggi.

  3. 'richiederà un Server di integrazione personalizzato per interpretare le API di respond.io e l'altra piattaforma, abilitando lo scambio di messaggi tra loro.

Assicurarsi di confermare con l'altra piattaforma che i primi due passi sono fattibili.

FAQ per Webhooks canale personalizzato

Perché il webhook restituisce uno stato 200 anche se il messaggio non viene consegnato a respond.io?

Quando si collega un canale personalizzato, i messaggi inviati per rispondere. o attraverso webhooks restituirà sempre un codice di stato 200 immediatamente, indipendentemente dal fatto che il messaggio sia stato passato correttamente a respond.io. Ciò è dovuto alla natura dei webhook, che sono progettati per restituire una risposta immediata senza verificare il successo della consegna del messaggio.

Condividi questo articolo
Telegram
Facebook
Linkedin
Twitter

Articoli correlati 👩‍💻

Panoramica Dei Canali Personalizzata
Ottieni una panoramica del canale personalizzato e delle sue capacità.

Non riesci a trovare quello che stai cercando? 🔎