Linq, un’azienda di infrastruttura per la messaggistica, ha rilasciato una nuova caratteristica per le interazioni in tempo reale su iMessage con un tipo di messaggio chiamato imessage_app. Questi messaggi trasformano le conversazioni in esperienze interattive senza bisogno di uscire da iOS Messages, integrando in un’unica bollicina funzionalità diverse come gaming, pagamenti, musica, dating, e prenotazioni di voli o eventi.
Che Cos'è un iMessage App?
Gli iMessage Apps sono cards interattive che contengono esperienze native, come giochi o prenotazioni, direttamente nell’app Messages. Tecnicamente, questi sono nuovi message parts dove type: "imessage_app" sostituisce le tipologie più comuni (text, media, link). Un’estensione installata su Messages renderizza il contenuto utilizzando un URL fornito.
Una delle caratteristiche principali è la capacità di aggiornare lo stesso messaggio in tempo reale, come ad esempio il punteggio durante un gioco.
Componenti di Base
- App Object: Specifica teamid e bundleid per indicare al sistema quale estensione renderizza la card.
- Url: Diretta al contenuto interattivo.
- Fallback Text: Testo visualizzato in caso di mancato caricamento.
- Layout: Include caption (testo in grassetto), subcaption (sotto la didascalia), e trailing_caption (in alto a destra).
- Interactive Flag: Se impostato su true, la card mostra il contenuto dinamico. Se su false, mostra solo la didascalia statica.
Esecuzione Pratica
Per mandare un card interattiva, si usa l’API Create Chat o Send Message di Linq per postare il messaggio direttamente in una chat esistente.
curl -X POST https://api.linqapp.com/api/partner/v3/chats \
-H "Authorization: Bearer $LINQAPIKEY" \
-H "Content-Type: application/json" \
-d '{"from":"+12052535597","to":["+12052532136"],"message":{"parts":[{"type":"imessageapp","app":{"name":"Example App","teamid":"A1B2C3D4E5","bundleid":"com.example.app.MessageExtension"},"url":"https://app.example.com/card?id=abc123","fallbacktext":"Open in Example App","layout":{"caption":"Example App","subcaption":"You said: hello"}}]}}'
Aggiornamenti successivi vengono fatti con l’API /update, che sostituisce la vecchia card.
curl -X POST https://api.linqapp.com/api/partner/v3/messages/{messageId}/update \
-H "Authorization: Bearer $LINQAPIKEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://app.example.com/card?game=7f3a&move=2","fallback_text":"Score update","layout":{"caption":"Score: 2 - 1"}}'
Casi D’Uso e Applicazioni
Linq descrive diversi scenari dove questi iMessage Apps possono essere impiegati:
- Giochi: Si possono aggiornare in tempo reale le mosse o i punteggi.
- Pagamenti: Si richiede un pagamento e lo si completa direttamente dalla bollicina.
- Biglietti: Vengono aggiornati da uno stato di conferma a un ticket visibile.
- Biglietti aerei: Si seleziona un posto e si mostra il passaporto digitale nella stessa bollicina.
- Musica: Si ascolta una traccia all’interno della conversazione.
- Matching: Si scelgono profili o si esplora l’app direttamente nella chat.
Confronto con Altri Tipi di Messaggio
imessage_app non si confronta semplicemente come un’altra tipologia di messaggio. A differenza dei rich preview o dei media, non permette visualizzazione parziale e richiede l’app estensione per caricare il contenuto completo. Una tabella di riferimento spiega meglio:
| Funzionalità | imessage_app | text | media | link |
|---|---|---|---|---|
| Interattivo? | Sì | No | No | No |
| Agiornabile? | Sì | No | No | No |
| Rendering | Estensione app | Messages | Messages | Messages |
| Visibile senza app | Solo testo | Sempre | Sempre | Sempre |
| Fallback in SMS/RCS | No | Sì | Sì | Sì |
| Combinabile con altri tipi | No | Sì | Sì | Sì |
Punti di Forza e Debolezza
Punti Forti
- Aggiornamenti in tempo reale da un’unica bollicina.
- Esecuzione interna alla chat, senza dover aprire un browser.
- API semplice e ben documentata: invio, aggiornamento e ricezione.
- Fallback testo prevedibile per chi non ha l’app installata.
Limiti
- Disponibilità solo su iMessage, con limitazioni globale.
- Richiede l’installazione della estensione Messages.
- Se i campi teamid o bundleid sono sbagliati, il fallback è testo.
- Dipendenza da Apple, con rischi del consueto tipo platform.
Linq ha messo a disposizione una demo interattiva per sperimentare direttamente alcune funzionalità di imessage_app. Per ulteriori informazioni, visitate la sezione Tecnica di Linq. Seguiteci anche su Twitter e unitevi alla nostra comunità su SubReddit, non dimenticatevi di iscrivervi alla newsletter.