Démarrage rapide Websocket en temps réel
Ce démarrage rapide rassemble le minimum nécessaire pour commencer à recevoir les événements GraphQL Legalesign en temps réel.
Si vous préférez les rappels serveur-à-serveur aux connexions persistantes, les webhooks sont également disponibles (décrits dans la section REST API).
Pour de meilleurs résultats, fournissez à votre outil IA ces pages ensemble :
Vous allez :
- obtenir un jeton d’accès
- ouvrir une connexion websocket AppSync
- vous abonner à un flux utilisateur ou groupe
- analyser l’enveloppe d’événement
- router selon
categoryetevent
Avant de commencer
Vous avez besoin de :
- accès API activé pour votre compte
- un compte utilisateur Legalesign
- un jeton d’accès
- un
groupIdsi vous souhaitez utilisersubscribeGroupFeed
Commencez ici si vous n’avez pas encore effectué ces étapes :
Étape 1 : Choisir un flux
Utilisez :
subscribeUserFeedpour les événements ciblant un utilisateur comme la progression des uploadssubscribeGroupFeedpour les événements ciblant un groupe comme les mises à jour de documents, destinataires, modèles, tâches, crédits, et cycle de vie
Flux utilisateur
subscription SubscribeUserFeed {
subscribeUserFeed {
userId
data
}
}
Flux groupe
subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}
Étape 2 : Se connecter au point de terminaison Websocket
Utilisez le point de terminaison websocket AppSync :
wss://graphql.uk.legalesign.com/graphql
Passez votre token bearer dans les paramètres de connexion.
import { createClient } from 'graphql-ws';
import WebSocket from 'ws';
const client = createClient({
url: 'wss://graphql.uk.legalesign.com/graphql',
webSocketImpl: WebSocket,
connectionParams: {
Authorization: `Bearer ${accessToken}`,
},
});
Étape 3 : S’abonner
client.subscribe(
{
query: `
subscription SubscribeGroupFeed($groupId: String!) {
subscribeGroupFeed(groupId: $groupId) {
groupId
data
}
}
`,
variables: {
groupId: '<your-group-id>',
},
},
{
next: ({ data }) => {
console.log('raw message', data);
},
error: console.error,
complete: () => console.log('subscription closed'),
}
);
Étape 4 : Analyser la charge utile interne
Le champ d’abonnement retourne :
- un wrapper de livraison (
groupIdouuserId) - une chaîne JSON dans
data
Analysez d’abord le champ interne data avant toute autre action :
const parseEnvelope = (payload) => {
const raw = payload?.data;
if (!raw) return null;
return typeof raw === 'string' ? JSON.parse(raw) : raw;
};
Exemple :
next: ({ data }) => {
const wrapper = data?.subscribeGroupFeed;
const event = parseEnvelope(wrapper);
console.log('event id', event?.eventId);
console.log('category', event?.category);
console.log('event', event?.event);
console.log('payload', event?.data);
}
Étape 5 : Router selon category et event
Ne créez pas de nouvelles intégrations basées sur les codes hérités de type systemMessage.
Utilisez :
categorypour identifier la famille d’événementseventpour identifier le changement spécifique
Exemples :
category: "upload",event: "uploadCompleted"category: "task",event: "taskCompleted"category: "documentLifecycle",event: "documentCreated"category: "recipientLifecycle",event: "recipientVisiting"
Schémas de démarrage typiques
Si vous devez choisir où commencer :
- interface de traitement de fichiers : Suivre la progression de l’upload avec les abonnements
- interface de workflow d’envoi : Suivre les tâches d’envoi avec les abonnements
- interface tableau de bord/activité : Suivre le cycle de vie des documents et destinataires avec les abonnements