Passer au contenu principal
Une session hébergée est un lien signé et temporaire vers une page hébergée par Shortext, où votre utilisateur réalise une étape impossible dans votre propre produit : s’identifier auprès de Meta pour connecter un numéro WhatsApp Business, ou saisir et vérifier les paramètres d’une boîte mail. Une fois terminé, il revient dans votre application et vous recevez le résultat. Cas typique : vous construisez un produit sur Shortext, et chacun de vos clients connecte son propre numéro WhatsApp à l’agent que vous avez configuré pour lui.

Parcours

1

Créez la session (votre serveur)

POST /hosted-sessions avec un purpose (objectif). La réponse contient l’url de la page.
2

Envoyez votre utilisateur sur la page

Redirigez-le, ou ouvrez l’URL dans une nouvelle fenêtre. Ne l’intégrez pas dans une iframe : la connexion Meta la refuse.
3

Votre utilisateur complète la page

Sur https://shortext.ny-corp.io/connect/{token}, il s’identifie auprès de Meta ou saisit les paramètres de sa boîte mail.
4

Retour dans votre application

Shortext le renvoie vers votre return_url avec ?session_id={id}&status={statut}.
5

Récupérez le résultat (votre serveur)

Recevez le webhook hosted_session.completed ou hosted_session.failed, ou appelez GET /hosted-sessions/{id}. Ne vous fiez pas au seul status de l’URL de retour : n’importe qui peut le saisir.

Objectifs

GET /hosted-sessions/purposes les liste.

Créer une session

Demande la permission Gérer les intégrations.
string
requis
whatsapp ou mail.
object
Options de l’objectif, par exemple { "agent_id": "AGI-XXXXX" }. L’agent doit appartenir à votre entreprise.
string
Votre page vers laquelle l’utilisateur revient. HTTPS uniquement.
string
La langue de la page, par exemple fr ou en.
integer
défaut:"60"
Durée de validité du lien en minutes, de 5 à 1 440 (24 heures).
Réponse
L’url contient un secret et n’est renvoyée qu’à la création. Ne la journalisez jamais, ne la partagez qu’avec l’utilisateur à qui elle est destinée.

Statuts

Une session ne sert qu’une issue : une fois terminée, échouée, annulée ou expirée, son lien cesse de fonctionner. Créez une nouvelle session pour réessayer.

Résultat

Pour les deux objectifs, result liste les canaux connectés, au même format que GET /channels :
Conservez l’id du canal : c’est le channel_id depuis lequel vous envoyez les messages. Un webhook channel.connected est aussi envoyé pour chaque nouveau canal.

Autres endpoints

Voir le guide Connecter le WhatsApp d’un client.