TelnectPrata med oss
TELNECT / Kunskapsbank

Skicka SMS via API med cURL, Python och Node.js

Första testet behöver tre saker: en API-nyckel med sms.send, en avsändare som ert konto får använda och ett nummer som ni själva kan kontrollera. Varje exempel nedan begär ett verkligt, debiterbart SMS när det körs.

Förbered ett enda test

Välj ett av exemplen. Sätt TELNECT_API_TOKEN, SMS_FROM och SMS_TO i serverns miljö. SMS_TO ska vara ert eget testnummer i internationellt format. SMS_FROM ska vara er godkända avsändare. Exemplen använder Telnects BSS-adress. Om er anslutning har en annan basadress, använd den som hör till kontot.

Skicka från en terminal eller serverprocess där nyckeln stannar på er sida. Telnects resurs tar emot JSON med to, from och text. Börja med ett enda nummer så att svaret går att jämföra med telefonen.

cURL i ett Unix-skal

Kommandot använder jq för att bygga JSON och cURL för att skicka det.

cURL och jq
jq -n --arg to "${SMS_TO:?}" --arg from "${SMS_FROM:?}" '{to:$to, from:$from, text:"Test fran Telnect"}' |
  curl --fail-with-body -sS https://bss.telnect.com/api/v1/TextMessage/Send -H "Authorization: Bearer ${TELNECT_API_TOKEN:?}" -H "Content-Type: application/json" --data-binary @-

Python med standardbiblioteket

Python
import json, os, urllib.request
body = {"to": os.environ["SMS_TO"], "from": os.environ["SMS_FROM"], "text": "Test fran Telnect"}
request = urllib.request.Request("https://bss.telnect.com/api/v1/TextMessage/Send",
    data=json.dumps(body).encode(), headers={"Content-Type": "application/json",
    "Authorization": "Bearer " + os.environ["TELNECT_API_TOKEN"]})
with urllib.request.urlopen(request, timeout=20) as response:
    print(json.load(response))

Node.js med fetch

Spara som sms.mjs och kör med en Node-version som har fetch.

Node.js
const { SMS_TO: to, SMS_FROM: from, TELNECT_API_TOKEN: token } = process.env;
if (!to || !from || !token) throw new Error("Ange nummer, avsändare och API-nyckel");
const response = await fetch("https://bss.telnect.com/api/v1/TextMessage/Send", {
  method: "POST", headers: { Authorization: "Bearer " + token, "Content-Type": "application/json" },
  body: JSON.stringify({ to, from, text: "Test fran Telnect" })
});
if (!response.ok) throw new Error("HTTP " + response.status);
console.log(await response.json());

Läs svaret innan ni försöker igen

Vid sändning till ett enda nummer innehåller to i svaret mottagarens nummer. Spara reference tillsammans med ert eget jobb-ID. Kontrollera också vilken avsändare och text som kom fram till testtelefonen. Exemplet nedan visar ett förkortat listsvar med fingerade mottagaruppgifter.

Med en mottagarlista kan to i svaret innehålla en rad per nummer. I referensens exempel kan en rad ha status 500, messages 0 och error ”Invalid destination number” samtidigt som andra rader har status 1. Statusvärdet på raden är ett applikationsfält. Läs det även när anropets HTTP-status är 200. Vid ett förlorat svar behöver utfallet stämmas av före ett nytt betalt försök.

JSON · exempel på mottagarvisa svar
{
  "status": 1,
  "from": "Exempel",
  "to": [
    {
      "number": "+46XXXXXXXXX",
      "to": "+46XXXXXXXXX",
      "status": 1,
      "reference": "test-01",
      "messages": 1
    },
    {
      "number": "123",
      "to": "123",
      "status": 500,
      "messages": 0,
      "error": "Invalid destination number"
    }
  ]
}

Underlag och avsändare

Guiderna beskriver tekniska mönster. Syntetiska exempel är märkta och ersätter inte verifiering av er anslutning.

FRÅN IDÉ TILL ETT FÖRSTA TEST

Hur vill ni använda SMS i er verksamhet?

Gå igenom ert första utskick, val av avsändare och hur ni följer upp leveransen.

Boka teknisk genomgång ↗