Opi määrittämään verkkokoukut saadaksesi automaattisia ilmoituksia litterointitapahtumista VoxScriberissa.
Määritä reaaliaikaiset automaattiset ilmoitukset litteroinneistasi. Opi konfiguroimaan verkkokoukut, toteuttamaan turvallisuus ja integroimaan järjestelmiisi.
Saat heti päivityksiä litteroinnin tilasta.
Automatisoi työnkulkuja tapahtumien perusteella.
| Tapahtuma | Kuvaus | Tietosisältö |
|---|---|---|
| transcription.started | Litteroinnin käsittely aloitettu | Latauksen tunnus, moottori, aikaleima |
| transcription.progress | Edistyminen päivitetty | Latauksen tunnus, prosenttiosuus, arvio |
| transcription.completed | Litterointi onnistuneesti valmis | Latauksen tunnus, teksti, kesto, hyvitykset |
| transcription.failed | Litterointi epäonnistui | Latauksen tunnus, virhe, virheen tyyppi |
| transcription.retry | Uudelleenyritys aloitettu | Latauksen tunnus, yritys, moottori |
| upload.completed | Tiedoston lataus valmis | Latauksen tunnus, koko, muoto |
| credits.low | Hyvitykset alle asetetun kynnyksen | Nykyinen saldo, kynnys |
const express = require('express');
const crypto = require('crypto');
const app = express();
const WEBHOOK_SECRET = process.env.WEBHOOK_SECRET;
app.post('/webhook/voxscriber', express.raw({ type: 'application/json' }), (req, res) => {
// Verify signature
const signature = req.headers['x-webhook-signature'];
const hash = crypto
.createHmac('sha256', WEBHOOK_SECRET)
.update(req.body)
.digest('hex');
if (signature !== hash) {
return res.status(401).send('Invalid signature');
}
const event = JSON.parse(req.body);
switch (event.type) {
case 'transcription.completed':
console.log('Transcription completed:', event.data.uploadId);
// Process result
break;
case 'transcription.failed':
console.log('Transcription failed:', event.data.error);
// Handle error
break;
}
res.status(200).json({ received: true });
});
import hmac
import hashlib
from flask import Flask, request, jsonify
app = Flask(__name__)
WEBHOOK_SECRET = os.environ['WEBHOOK_SECRET']
@app.route('/webhook/voxscriber', methods=['POST'])
def handle_webhook():
# Verify signature
signature = request.headers.get('X-Webhook-Signature')
expected = hmac.new(
WEBHOOK_SECRET.encode(),
request.data,
hashlib.sha256
).hexdigest()
if not hmac.compare_digest(signature, expected):
return jsonify({'error': 'Invalid signature'}), 401
event = request.json
if event['type'] == 'transcription.completed':
process_transcription(event['data'])
elif event['type'] == 'transcription.failed':
handle_failure(event['data'])
return jsonify({'received': True}), 200
Tarkista aina HMAC-allekirjoitus jokaisesta vastaanotetusta verkkokoukusta ennen tapahtuman käsittelyä. Älä koskaan luota verkkokoukkuihin ilman allekirjoituksen vahvistusta.
Kun päätepisteesi ei vastaa onnistuneesti (2xx), VoxScriber yrittää uudelleen:
| Yritys | Väli | Kuvaus | |---|---|---| | 1 | Välittömästi | Ensimmäinen yritys | | 2 | 1 minuutti | Ensimmäisen epäonnistumisen jälkeen | | 3 | 5 minuuttia | Toinen uudelleenyritys | | 4 | 30 minuuttia | Kolmas uudelleenyritys | | 5 | 2 tuntia | Viimeinen yritys |
Viiden peräkkäisen epäonnistumisen jälkeen verkkokoukku poistetaan automaattisesti käytöstä ja saat siitä sähköposti-ilmoituksen.
Mahdollisia syitä: Väärä URL, palomuuri estää, virheellinen SSL-sertifikaatti.
Ratkaisut: Tarkista URL hallintapaneelista, salli VoxScriberin IP-osoite palomuurissa, tarkista SSL-sertifikaattisi.
Mahdollisia syitä: Väärä salaisuus, eri koodaus pyynnön rungolle, middleware muuttaa runkoa.
Ratkaisut: Vahvista salaisuus hallintapaneelissa, käytä raakaa runkoa vahvistukseen, poista jäsentävä middleware ennen vahvistusta.
Mahdollisia syitä: Uudelleenyritys aikakatkaisun jälkeen, hidas palvelinvastaus.
Ratkaisut: Toteuta idempotenssi käyttämällä event.id-kenttää, vastaa 200 OK nopeasti, käsittele asynkronisesti.
Käytä verkkokoukkujen valvontapaneelia hallintapaneelissa tarkistaaksesi toimituksia, virheitä ja tietosisältöjä. Tämä yksinkertaistaa huomattavasti vianetsintää integraation aikana.