Här hittar du allt du behöver för att koppla vårt RESTful SMS API 1.0 till ditt system eller applikation. Med hjälp av ett SMS API kan du enkelt skräddarsy dina egna SMS-funktioner.
HTTP Basic Läs mer om HTTP Basic Authentication här
Alla requester till vårt RESTful SMS API 1.0 kräver autentisering med dina kontouppgifter. Vi använder oss av autentisering via Konto-ID och API-nyckel genom HTTP Basic. Dessa uppgifter kan du hitta genom att logga in i vår Användarportal.
För att skapa din Basic Authentication sträng, ta ditt kontonummer (ex. ip1-12345) och din API-nyckel (ex. cCnbXFfyTM5BTKh7uNV#tz) och kör dem genom en Base64 encoder i följande format: ip1-12345:CnbXFfyTM5BTKh7uNV
Du bör få ut en sträng som ser ut ungefär så här: aXAxLTEyMzQ1OkNuYlhGZnlUTTVCVEtoN3VOVg==
Du har nu genererat din HTTP Basic Authentication-sträng, som du sedan anger som en HTTP header på följande sätt:
Authorization: Basic aXAxLTEyMzQ1OkNuYlhGZnlUTTVCVEtoN3VOVg==
HTTP Bearer Läs mer om HTTP Bearer Authentication här
Du kan också autentisera viaHTTP Bearer tokens, som vi tillhandahåller. Varje konto du skapar kan ha flera nycklar med olika restriktioner på tillåtna IP-adresser som du själv anger. Dessa API-nycklar hanterar du i vår Användarportal.
För varje anrop som görs rekommenderar vi en maxmängd på 500 mottagare/anrop. Vid större mottagarlistor rekommenderar vi att dela upp antalet mottagare i flera anrop med max 500 mottagare i varje.
api.ip1sms.com är den URL som ligger som bas för samtliga API-anrop är och nås via HTTPS och kan användas på följande sätt:
https://api.ip1sms.com
Resten av ovannämnda URL är olika för olika anrop och kallas för anropets URI. En URI pekar i de flesta fall till en entitet eller samling av det som anropats (ex. api/contacts pekar på en samling av kontakter). HTTP verbet förtydligar operationen som behöver göras på målet (ex. GET läser och POST skapar).
Du genererar din API-nyckel för vårt RESTful SMS API 1.0 i vår användarportal genom att logga in via denna länk.
Kodexempel med HTTP Basic Autentisering
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("https://api.ip1sms.com/api/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", "ip1-xxxxx", "API-Key"))));
var sms = new OutgoingSMS()
{
From = "iP1",
Numbers = new List() { "46123456789" },
Contacts = new List(),
Groups = new List(),
Message = "test",
Prio = 1,
Email = false
};
HttpResponseMessage response = await client.PostAsJsonAsync("sms/send", sms);
if (response.IsSuccessStatusCode)
{
Console.WriteLine("Sent");
}
else
{
Console.WriteLine("Failed, " + response.StatusCode + ": " + await response.Content.ReadAsStringAsync());
}
}
$conf = array(
'account' => 'ip1-xxxxx',
'password' => 'apiKey',
'apiUrl' => 'api.ip1sms.com',
'method' => 'POST',
'endpoint' => '/api/sms/send',
);
$message = array(
'Numbers' => ['4673055555'],
'From' => 'iP.1',
'Message' => "Test message via iP.1's REST API",
);
$jsonEncodedMessage = json_encode($message);
// Set up request options
$options = array(
'http' => array(
'header' => array(
'Content-Type: application/json',
'Authorization: Basic '. base64_encode($conf['account'].":".$conf['password']),
'Content-Length: ' . strlen($jsonEncodedMessage)
),
'method' => $conf['method'],
'content' => $jsonEncodedMessage,
)
);
$url = "https://" . $conf['apiUrl'] . $conf['endpoint'];
$context = stream_context_create($options);
// Send the request
$response = file_get_contents($url, false, $context);
// Print the response
echo $response;
Vårt SMS Survey API låter dig skicka undersökningar via SMS. Perfekt för att automatisera kundundersökningar, vid exempelvis ordrar eller andra typer av registreringar. Du kan enkelt skapa, skicka och hantera enkäter direkt via API:et.
Genom att koppla på 2FA vid exempelvis registrering av nya konton kan du enkelt säkerställa att personen har angivit rätt uppgifter genom att bekräfta användarens telefonummer. Koden skickas som ett SMS till angivet nummer på nolltid.
När du integrerar tvåfaktorsautentisering via SMS från iP.1 får du automatisk tillgång till vår globala spamfilterlista som innehåller tusentals virtuella nummersom använts vid illasinnade bot-registreringar.
Nedan hittar olika statuskoder för både HTTP-anrop samt status på SMS.
Code | Name | Description |
---|---|---|
200 | OK | Standard success kod, används vid lyckade anrop, förutom vid skapade entiteter. |
201 | Created | Används enbart vid skapande av entiteter. Headern LocationAnvänds för att peka ut nyligen skapade entiteter. |
400 | Bad Request | Används när användarangiven information innehåller fel, respons-bodyn kan innehålla information kring vilken data som är invalid och varför. |
401 | Unauthorized | Används när autentiseringsinformation saknas eller är felaktig, eller om den autentiserade användaren inte har behörighet att anropa API:et. |
403 | Forbidden | Används vid lyckad autentisering, men att anropet försöker nå en entited eller samling av entiteter som användaren inte har behörighet att nå. Statusbeskrivningen kan innehålla ytterligare information. |
404 | Not Found | Används när vid försök att nå en entitet eller samling av entiter som inte finns eller om anropet försöker nå en URI som är felaktig. |
405 | Method Not Allowed | Används vid försök att använda ett HTTP verb som inte går att använda för angiven entitet eller samling av entiteter. |
415 | Unsupported Media Type | Används vid försök att skicka annan data än JSON eller om anropet saknar en Content-Type header. |
500 | Internal Server Error | Används generellt vid fel, om ingen annan felkod är mer relevant. Response bodyn kan innehålla ytterligare information. |
statuskod | Beskrivning |
---|---|
0 | Levererad till Gateway |
1 | Misslyckades att logga in på Gateway |
2 | Ogiltigt innehåll i meddelandet |
3 | Ogiltigt format på telefonnumret |
4 | Otillräckligt saldo |
10 | Mottagen av Gateway |
11 | Tidsinställd leverans |
12 | Tidsinställd leverans avbruten |
21 | Levererad till GSM-nätet |
22 | Levererad till mobiltelefon |
30 | Otillräckligt saldo |
41 | Ogiltigt innehåll i meddelandet |
42 | Internt fel |
43 | Leverans misslyckades |
44 | Leverans misslyckades |
45 | Ogiltigt telefonnummer |
50 | Generellt leveransfel |
51 | Leverans till GSM-nätet misslyckades |
52 | Leverans till telefon misslyckades |
100 | Otillräckligt saldo |
101 | Ogiltiga kontouppgifter |
110 | Parameterfel |
För att ta emot inkommande SMS behöver du ett telefonnummer. I dagens läge finns möjligheten att välja ett virtuellt nummer med 11 siffror samt 5 siffror och prefix. Kom ihåg att avsändaren inte får bestå av ett nummer längre än 11 tecken och det bara är möjligt att ta emot meddelanden från vår server om detta krav är uppfyllt.
Det enklaste sättet att hantera inkommande SMS är att skapa en webb-applikation och sedan registrera en callback-URL för mottagarnumret hos oss.
När ett meddelandet tas emot av vår gateway så genomförs ett HTTP GET-anrop till callback-URL:en med följande parametrar:
Parameter | Beskrivning | Typ |
---|---|---|
text | Meddelandets innehåll | Sträng |
to | Mottagarens telefonnummer | Sträng |
sender | Avsändare | Sträng |
incsmsid | ID-nummer | sträng |
Exempel: Om din callback-URL är http://www.example.com/smscallback.php ser anropet ut så här:
http://www.example.com/smscallback.php?incsmsid=123456789&sender=4673222222&text=testmeddelande&to=4673XXXXXXXXXXX
Det är också möjligt att skapa ett anrop med query-strängar, till exempel: http://www.example.com/smscallback.php?someparam=somevalue
Som svar på ditt callback-anrop ska din applikation returnera ett oformaterat OK (två tecken, utan formatering). Om ditt anrop inte lyckas eller om du får ett annat svar från servern så kommer servern att försöka igen med en intervall på 30 minuter, maximalt tio försök.När du har en färdig Callback-url måste du registrera den på https://app.ip1sms.com/settings/#extra. Logga in med din iP.1 Användare. Klistra in din URL i text-fältet ”Callback URL och spara dina inställningar.
$conf['apiurl'] = 'https://web.smscom.se/sendsms/sendsms.asmx?wsdl';
$conf['mmsapiurl'] = 'https://web.smscom.se/mms/mms.asmx?wsdl';
$conf['account'] = 'ip1-xxxxx';
$conf['password'] = 'API-Key';
$conf['to'] = '46712345678';
$conf['from'] = 'iP1';
$conf['prio'] = '1';
$conf['msg'] = 'Test message via iP.1 API (Web Service)';
$conf['msg_at'] = "Test send at message via iP.1 API (Web Service)";
$conf['msg_bundle'] = "Test bundle message via iP.1 API (Web Service)";
$client = new SoapClient($conf['apiurl']);
$mmsClient = new SoapClient($conf['mmsapiurl']);
$result = $client->balans(array('konto'=>$conf['account'], 'passwd' => $conf['password']));
echo 'Balnace: ' . $result->balansResult;
$smsresult = $client->sms(array('konto'=>$conf['account'], 'passwd' => $conf['password'], 'till' => $conf['to'], 'from' => $conf['from'], 'meddelande' =>$conf['msg'], 'prio' => $conf['prio']));
echo 'Result of SMS: ' . $smsresult->smsResult;
Deprecated Detta API är deprekerat och kommer inte längre att vidareutvecklas. Vi rekommenderar er att använda något av våra REST API:er
För varje anrop som görs rekommenderar vi en maxmängd på 500 mottagare/anrop. Vid större mottagarlistor rekommenderar vi att dela upp antalet mottagare i flera anrop med max 500 mottagare i varje.
$conf['account'] = 'ip1-xxxx';
$conf['password'] = 'api-key';
$conf['apiurl'] = 'https://web.smscom.se/sendsms.aspx';
$conf['to'] = '4673055555';
$conf['from'] = 'iP.1';
$conf['msg'] = 'Test message via iP.1 HTTP Request';
$conf['prio'] = '1';
$data = http_build_query(array('acc'=>$conf['account'],'pass'=>$conf['password'],'msg'=> $conf['msg'],'from'=>$conf['from'],'to'=> $conf['to'],'prio'=>$conf['prio'], 'type' => ''));
$opts = array('http' =>
array(
'method' => 'GET',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $data
)
);
$context = stream_context_create($opts);
$result = file_get_contents($conf['apiurl'] . '?' . $data, false, $context);
echo 'Result/SMS ID: ' . $result;
Deprecated Detta API är deprekerat och kommer inte längre att vidareutvecklas. Vi rekommenderar er att använda något av våra REST API:er
För varje anrop som görs rekommenderar vi en maxmängd på 500 mottagare/anrop. Vid större mottagarlistor rekommenderar vi att dela upp antalet mottagare i flera anrop med max 500 mottagare i varje.
Ett nuget-paket med olika verktyg. Innehåller bland annat verktyg för att formatera dina mobilnummer och att beräkna antal SMS i ett meddelande.
iP.1 UtilsEtt NPM-paket med blacklist för disposable phonenumbers. Innehåller en blacklist med bland annat virtuella engångs-nummer som använts vid kontoregistrering.
Is-Disposable-Phonenumber