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_apptextmedialink
Interattivo?NoNoNo
Agiornabile?NoNoNo
RenderingEstensione appMessagesMessagesMessages
Visibile senza appSolo testoSempreSempreSempre
Fallback in SMS/RCSNo
Combinabile con altri tipiNo

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.