Magsimula

Mga halimbawa ng code ng SMS API: curl, Node.js, Python, PHP, Go

Ang bawat halimbawa ay isang kumpletong program na gumagamit lamang ng standard library ng wika nito (Node.js 18+ para sa fetch, Python 3, PHP na may curl extension, Go 1.20+). Itakda muna ang BULKSMSAPI_KEY sa environment.

Magpadala ng isang mensahe

curl https://bulksmsapi.cc/v1/messages \
  -H "Authorization: Bearer $BULKSMSAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155550123",
    "text": "Your Northwind code is 482913. It expires in 10 minutes.",
    "reference": "login-7781"
  }'

Magpadala ng batch

curl https://bulksmsapi.cc/v1/batches \
  -H "Authorization: Bearer $BULKSMSAPI_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: spring-sale-0412" \
  -d '{
    "name": "Spring sale",
    "text": "Spring sale at Northwind: 20% off until Sunday. Opt out: northwind.example/sms",
    "to": [
      "+14155550123",
      "+447400123456",
      "+4915123456789"
    ]
  }'

Basahin ang status ng mensahe

curl https://bulksmsapi.cc/v1/messages/msg_8F3K2Q9TZ1MX \
  -H "Authorization: Bearer $BULKSMSAPI_KEY"

Tingnan ang balance

curl https://bulksmsapi.cc/v1/balance \
  -H "Authorization: Bearer $BULKSMSAPI_KEY"

Basahin ang mga presyo

# Public: no key needed
curl https://bulksmsapi.cc/v1/pricing/DE

I-verify ang isang webhook

Ang halimbawa sa Node.js ay gumagamit ng Express at ang halimbawa sa Python ay gumagamit ng Flask, ang karaniwang maliliit na framework para sa HTTP endpoint; ang signature check mismo ay standard library lamang.

// Express: keep the raw body, check the signature, then answer 2xx quickly
import crypto from "node:crypto";
import express from "express";

const app = express();
const secret = process.env.BULKSMSAPI_WEBHOOK_SECRET; // whsec_...

app.post("/hooks/sms", express.raw({ type: "application/json" }), (req, res) => {
  const id = req.header("webhook-id");
  const ts = req.header("webhook-timestamp");
  const key = Buffer.from(secret.slice("whsec_".length), "base64url");
  const expected = crypto.createHmac("sha256", key).update(`${id}.${ts}.${req.body}`).digest("base64");
  const sent = (req.header("webhook-signature") || "").split(" ").map((s) => s.replace(/^v1,/, ""));
  const fresh = Math.abs(Date.now() / 1000 - Number(ts)) < 300;
  if (!fresh || !sent.some((s) => s.length === expected.length && crypto.timingSafeEqual(Buffer.from(s), Buffer.from(expected)))) {
    return res.status(401).end();
  }
  const event = JSON.parse(req.body);
  console.log(event.type, event.data.id, event.data.status);
  res.status(204).end();
});
app.listen(3000);
Mga halimbawa ng code ng SMS API: curl, Node.js, Python, PHP, Go | BulkSMSAPI Docs