Αποστολή Εγγράφου
Σε αυτό το βήμα θα χρησιμοποιήσετε τη μετάλλαξη send για να στείλετε ένα έγγραφο για υπογραφή. Αυτή είναι η πιο συνηθισμένη λειτουργία στο Legalesign API.
Προαπαιτούμενα
Χρειάζεστε:
- Ένα token ή κλειδί API από το Authenticate with the API
- Το βοήθημα
graphqlαπό το GraphQL Quickstart - Ένα group ID — η ομάδα στην οποία ανήκει το έγγραφο
- Ένα template ID — το πρότυπο PDF που θα σταλεί
Μπορείτε να βρείτε και τα δύο κάνοντας ερώτημα στα groups σας και τα πρότυπά τους — δείτε το προηγούμενο βήμα.
Αποστολή του εγγράφου
const sendResult = await graphql(token, `
mutation SendDocument($input: DocumentSendSettingsInput!) {
send(input: $input)
}
`, {
input: {
groupId: '<your-group-id>',
templateId: '<your-template-id>',
title: 'Test Document',
recipients: [
{
firstName: 'Jane',
lastName: 'Smith',
email: 'jane@example.com',
order: 0
}
]
}
});
console.log('Task ID:', sendResult.data.send);
Αν θέλετε να συμπεριλάβετε roleId, κάντε ερώτημα στους ρόλους του προτύπου με template { roles { id signerIndex } } (δείτε το προηγούμενο βήμα).
Αν η είσοδος είναι άκυρη, η μετάλλαξη επιστρέφει αμέσως σφάλμα.
Αν η μετάλλαξη είναι επιτυχής, επιστρέφει ένα task ID. Το έγγραφο επεξεργάζεται ασύγχρονα.
Έλεγχος της κατάστασης task
Κάντε ερωτήματα στη task για να ελέγξετε πότε ολοκληρώθηκε η αποστολή:
const taskId = sendResult.data.send;
const status = await graphql(token, `
query CheckTask($id: ID!) {
task(id: $id) {
data
report {
status
batchId
documents
errors
}
}
}
`, { id: taskId });
console.log(JSON.stringify(status, null, 2));
Επιθεωρήστε την status.data.task.report?.status στον πελάτη σας. Όταν γίνει COMPLETED, η δημιουργία του εγγράφου έχει ολοκληρωθεί. Αν γίνει FAILED, η αποστολή δεν ολοκληρώθηκε επιτυχώς.
Πλήρες λειτουργικό παράδειγμα
Ορίστε το ολοκληρωμένο index.js που συνδυάζει όλα τα βήματα:
const GRAPHQL_ENDPOINT = 'https://graphql.uk.legalesign.com/graphql';
const TOKEN = '<token-or-api-key>';
async function graphql(token, query, variables = {}) {
const response = await fetch(GRAPHQL_ENDPOINT, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify({ query, variables })
});
const result = await response.json();
if (result.errors) console.error('GraphQL errors:', result.errors);
return result;
}
async function main() {
const result = await graphql(TOKEN, `
mutation SendDocument($input: DocumentSendSettingsInput!) {
send(input: $input)
}
`, {
input: {
groupId: '<your-group-id>',
templateId: '<your-template-id>',
title: 'Test Document',
recipients: [
{
firstName: 'Jane',
lastName: 'Smith',
email: 'jane@example.com',
order: 0
}
]
}
});
console.log('Task ID:', result.data.send);
}
main().catch(console.error);
Επόμενα βήματα
- Προσθέστε περισσότερες επιλογές στην αποστολή σας — δείτε το DocumentSendSettingsInput για όλα τα διαθέσιμα πεδία
- Στείλτε σε πολλαπλούς παραλήπτες ή σειριακά — δείτε τα sending methods explained
- Στείλτε πολλά έγγραφα ταυτόχρονα — δείτε τα sendBatch και sendBulk
- Περιηγηθείτε σε περισσότερα mutation examples