Logo Site EngageLab Mark Colored TransparentDokumen
Cari

SDK

SDK Node.js dan Python EngageLab OTP yang disediakan secara resmi.

EngageLab menyediakan SDK resmi Node.js dan Python, membantu Anda mengintegrasikan fitur pengiriman OTP, verifikasi, dan callback Webhook tanpa dependensi.

Node.js SDK

SDK Node.js resmi mendukung Node.js 14+ dan menyertakan deklarasi TypeScript.

Instalasi

npm install engagelab-otp
              
              npm install engagelab-otp

            
Tampilkan blok kode ini di jendela mengambang

Mulai cepat

const { OTPClient } = require('engagelab-otp'); const otp = new OTPClient( process.env.ENGAGELAB_DEV_KEY, process.env.ENGAGELAB_DEV_SECRET ); // OTP yang dibuat platform — cara paling sederhana const { message_id } = await otp.send('+6591234567', 'your-template-id', {}, 'en'); const { verified } = await otp.verify(message_id, userTypedCode);
              
              const { OTPClient } = require('engagelab-otp');

const otp = new OTPClient(
  process.env.ENGAGELAB_DEV_KEY,
  process.env.ENGAGELAB_DEV_SECRET
);

// OTP yang dibuat platform — cara paling sederhana
const { message_id } = await otp.send('+6591234567', 'your-template-id', {}, 'en');
const { verified }   = await otp.verify(message_id, userTypedCode);

            
Tampilkan blok kode ini di jendela mengambang

Callback Webhook (Express)

EngageLab menandatangani callback menggunakan X-CALLBACK-ID (HMAC-SHA256). SDK akan memvalidasi signature dan mem-parsing event untuk Anda.

const express = require('express'); const { WebhookVerifier } = require('engagelab-otp'); const app = express(); app.use(express.json()); const verifier = new WebhookVerifier({ username: process.env.ENGAGELAB_WEBHOOK_USERNAME, secret: process.env.ENGAGELAB_WEBHOOK_SECRET, }); app.post('/webhook', verifier.middleware(async (events) => { for (const e of events) { if (e.kind !== 'message_status') continue; if (!e.is_terminal) continue; // dalam pengiriman (misalnya sedang melakukan pengiriman ulang) — tunggu if (e.status === 'delivered') await markDelivered(e.message_id); else if (e.status === 'verified') await markVerified(e.message_id); } }));
              
              const express = require('express');
const { WebhookVerifier } = require('engagelab-otp');

const app = express();
app.use(express.json());

const verifier = new WebhookVerifier({
  username: process.env.ENGAGELAB_WEBHOOK_USERNAME,
  secret:   process.env.ENGAGELAB_WEBHOOK_SECRET,
});

app.post('/webhook', verifier.middleware(async (events) => {
  for (const e of events) {
    if (e.kind !== 'message_status') continue;
    if (!e.is_terminal) continue; // dalam pengiriman (misalnya sedang melakukan pengiriman ulang) — tunggu

    if (e.status === 'delivered')        await markDelivered(e.message_id);
    else if (e.status === 'verified')    await markVerified(e.message_id);
  }
}));

            
Tampilkan blok kode ini di jendela mengambang

Untuk contoh lebih lanjut, termasuk pengiriman kode OTP kustom dan penanganan error, kunjungi engagelab-otp di npm atau repositori Github.


Python SDK

SDK Python resmi mendukung Python 3.8+ dan tanpa dependensi eksternal.

Instalasi

pip install engagelab-otp
              
              pip install engagelab-otp

            
Tampilkan blok kode ini di jendela mengambang

Mulai cepat

import os from engagelab_otp import OTPClient otp = OTPClient( os.environ["ENGAGELAB_DEV_KEY"], os.environ["ENGAGELAB_DEV_SECRET"], ) # OTP yang dibuat platform — cara paling sederhana result = otp.send("+6591234567", "your-template-id", {"name": "Alice"}, language="en") check = otp.verify(result["message_id"], user_typed_code) if check["verified"]: print("Success!")
              
              import os
from engagelab_otp import OTPClient

otp = OTPClient(
    os.environ["ENGAGELAB_DEV_KEY"],
    os.environ["ENGAGELAB_DEV_SECRET"],
)

# OTP yang dibuat platform — cara paling sederhana
result = otp.send("+6591234567", "your-template-id", {"name": "Alice"}, language="en")
check  = otp.verify(result["message_id"], user_typed_code)
if check["verified"]:
    print("Success!")

            
Tampilkan blok kode ini di jendela mengambang

Callback Webhook (Flask)

SDK menyediakan sebuah WebhookVerifier, yang dapat secara otomatis memvalidasi signature HMAC-SHA256 dan mem-parsing payload event.

import os from flask import Flask from engagelab_otp import WebhookVerifier, MessageStatusEvent app = Flask(__name__) verifier = WebhookVerifier( username=os.environ["ENGAGELAB_WEBHOOK_USERNAME"], secret=os.environ["ENGAGELAB_WEBHOOK_SECRET"], ) def handle(events): for e in events: if not isinstance(e, MessageStatusEvent): continue if not e.is_terminal: continue # dalam pengiriman, tunggu if e.status == "delivered": mark_delivered(e.message_id) elif e.status == "verified": mark_verified(e.message_id) app.add_url_rule( "/webhook", "engagelab_webhook", verifier.flask_view(handle), methods=["POST"], )
              
              import os
from flask import Flask
from engagelab_otp import WebhookVerifier, MessageStatusEvent

app = Flask(__name__)

verifier = WebhookVerifier(
    username=os.environ["ENGAGELAB_WEBHOOK_USERNAME"],
    secret=os.environ["ENGAGELAB_WEBHOOK_SECRET"],
)

def handle(events):
    for e in events:
        if not isinstance(e, MessageStatusEvent):
            continue
        if not e.is_terminal:
            continue   # dalam pengiriman, tunggu
        
        if e.status == "delivered":
            mark_delivered(e.message_id)
        elif e.status == "verified":
            mark_verified(e.message_id)

app.add_url_rule(
    "/webhook",
    "engagelab_webhook",
    verifier.flask_view(handle),
    methods=["POST"],
)

            
Tampilkan blok kode ini di jendela mengambang

Untuk contoh lebih lanjut, termasuk pengiriman kode OTP kustom dan penanganan error, kunjungi engagelab-otp di PyPI atau repositori Github.

Icon Solid Transparent White Qiyu
Hubungi Sales