Quickstart
Από «κανένας λογαριασμός» σε «συνεδρία δημιουργήθηκε + πρώτο webhook παραλήφθηκε» σε περίπου πέντε λεπτά. Θα χρησιμοποιήσουμε το Node SDK· της Python είναι σχεδόν πανομοιότυπο.
1. Αποκτήστε διαπιστευτήρια API
- Εγγραφείτε στο app.nexbasira.com — η ροή bootstrap δημιουργεί τον οργανισμό σας + τον χρήστη διαχειριστή σε ένα βήμα.
- Μεταβείτε στο Admin → API credentials και κάντε κλικ στο Issue credential.
- Αντιγράψτε το
nb_pub_*+nb_sec_*ζεύγος. Το μυστικό εμφανίζεται ακριβώς μία φορά — αποθηκεύστε το αμέσως στον διαχειριστή μυστικών σας.
2. Εγκαταστήστε το SDK
npm install @nexbasira/node Ή για Python: pip install nexbasira.
3. Δημιουργήστε μια συνεδρία
import { NexBasira } from "@nexbasira/node";
const nb = new NexBasira({
apiKey: process.env.NB_PUBLIC_KEY!,
apiSecret: process.env.NB_SECRET_KEY!,
});
const session = await nb.sessions.create({
notes: "Vehicle damage — claim CL-2026-0042",
scheduled_for: "2026-05-23T10:00:00Z",
});
console.log("Session id:", session.id);
// → "0c8f4d2e-..." 4. Εκδώστε μια πρόσκληση χρήστη πεδίου
const invite = await nb.sessions.invite(session.id, {
recipient_email: "alex@policyholder.com",
send_email: true,
});
console.log("Field URL (shown ONCE):", invite.url);
// → "https://app.nexbasira.com/join/0c8f.../?t=tok_..." Στείλτε το URL στον χρήστη πεδίου σας — το ανοίγει σε τηλέφωνο (mobile Safari ή Chrome), παραχωρεί άδειες κάμερας + GPS, και ο χειριστής τον βλέπει στον πίνακα ελέγχου του SPA σε λιγότερο από 30 δευτερόλεπτα.
5. Συνδέστε το webhook
Τα webhooks ενεργοποιούνται σε session.created, session.completed,
evidence.added, recording.ready, audit.anchored,
signature.completed, και μερικά ακόμη. Καταχωρίστε ένα URL παράδοσης από το Admin → Webhooks και επαληθεύστε την υπογραφή σε κάθε POST:
// Express handler
app.post("/nb-webhook", express.raw({ type: "application/json" }), (req, res) => {
const sig = req.header("NB-Signature")!;
const secret = process.env.NB_WEBHOOK_SECRET!;
try {
const event = nb.webhooks.constructEvent(req.body, sig, secret);
// event is now type-narrowed by event.type
switch (event.type) {
case "session.completed":
await onSessionCompleted(event.data);
break;
case "audit.anchored":
await onAuditAnchored(event.data);
break;
}
res.status(204).end();
} catch (err) {
if (err instanceof InvalidSignatureError) {
return res.status(401).send("bad signature");
}
throw err;
}
}); 6. (Προαιρετικά) Ενσωματώστε το widget πλευράς πεδίου
Αν προτιμάτε να φιλοξενήσετε την εμπειρία χρήστη πεδίου μέσα στη δική σας εφαρμογή προς τον πελάτη αντί να χρησιμοποιήσετε το φιλοξενούμενο URL μας, χρησιμοποιήστε το widget ενσωμάτωσης:
import { embed } from "@nexbasira/embed";
const widget = embed({
container: "#nb-host",
sessionUrl: invite.url,
onSessionComplete: (id) => router.push(`/inspections/${id}`),
});
// Imperative methods on the returned handle:
widget.requestSnapshot();
widget.openWhiteboard();
widget.endSession(); Εφαρμογή React; Χρησιμοποιήστε το @nexbasira/react του <NexBasiraSession> component αντ' αυτού — ίδια επιφάνεια, ιδιωματική React.
Τι έχετε τώρα
- Συνεδρίες που δημιουργήθηκαν μέσω API
- Χρήστες πεδίου που συνδέονται μέσω υπογεγραμμένων URL πρόσκλησης (χωρίς εγκατάσταση εφαρμογής)
- Webhooks επαληθευμένα + διανεμημένα στο backend σας
- (Προαιρετικά) ενσωματωμένη εμπειρία πλευράς πεδίου μέσα στο προϊόν σας
Τι ακολουθεί
- Έννοιες — τι είναι πραγματικά μια συνεδρία, μια εγγραφή τεκμηρίου και μια αλυσίδα ελέγχου
- Πλήρης αναφορά API — κάθε endpoint με παραδείγματα
- Εις βάθος ανάλυση Webhooks — τύποι συμβάντων, συμπεριφορά επανάληψης, idempotency
- Ρύθμιση SSO — OIDC + SAML για την ομάδα IT σας