SLOONO.de-API SMS: XML
Aus SLOONO.de-API
Es ist möglich SMS durch senden einer XML-POST-Anfrage zu senden. Die Variablen sind die gleichen wie bei der normalen SMS.
Inhaltsverzeichnis |
[Bearbeiten] API
[Bearbeiten] Anfrage
Adresse: http://www.sloono.de/API/xmlsms.php
Der XML-Block sieht dabei möglicherweise so aus:
<?xml version="1.0"?>
<SMS>
<user>Username</user>
<password>MD5 des Userpassworts</password>
<typ>0</typ>
<timestamp>0</timestamp>
<text><![CDATA[SMS-Text]]></text>
<from>1</from>
<to>+49(160)4863634</to>
<action>info</action>
<return>html</return>
<httphead>1</httphead>
</SMS>
Der XML-Block muss als Variable XMLDATA übertragen werden.
| Parameter | Typ | Beschreibung | Standard |
|---|---|---|---|
| user | Text | Username | |
| password | Text | MD5-Hashwert des Passworts | |
| typ | Zahl/Text | Welcher SMS-Typ soll gesendet werden:
|
0 |
| timestamp | Zahl | UNIX-Timestamp der genünschten Sendezeit. Bei 0 oder einem vergangenem Zeitpunkt wird sofort gesendet. | 0 |
| text | Text | SMS-Text mit maximal 1600 Zeichen. | |
| from | Zahl | Absenderkennung:
|
1 |
| to | Text | Zielnummern getrennt durch Komma (,) und im nationalen oder internationalen Format (0123/456789 oder +49(123)456789). Es können auch die Spitznamen aus dem Adressbuch oder Vor- + Nachname aus dem Adressbuch benutzt werden. | |
| action | Text | Es können die Werte info oder send gesetzt werden. Der Wert send überträgt die SMS ins System von MMSCLICK, während info nur Informationen über die SMS wie z. B. Preis zurück gibt. Nach dem senden werden die gleichen Informationen zurück gegeben. | send |
| return | Text | Mit dieser Variable wird das Antwortformat festgelegt. Mit text wird die Antwort als Mehrzeiliger Text zurückgegeben während xml ein XML-Schema liefert. | text |
| httphead | Zahl | Wenn httphead auf 1 gesetzt wird, so werden bei Fehlern HTTP-Header ungleich 200 gesendet. Beim Wert 0 muss der Fehler aus der Antwort abgelesen werden. | 1 |
Alle Variablen, die keinen Standartwert haben müssen gesetzt werden!
[Bearbeiten] Antwort
Eine Vorauswahl wird bereits mit dem HTTP-Header der Antwort getroffen. Wenn etwas anderes als HTTP 1/1 200 OK als Antwort empfangen wird ist ein Fehler aufgetreten. Zurückgegeben wird ein Fehlercode, ein Fehlertext und Informationen (falls vorhanden).
[Bearbeiten] Beispiele
POST /API/xmlsms.php HTTP/1.1
Host: www.sloono.de
Content-Type: application/x-www-form-urlencoded
Content-length: 540
Connection: close
XMLDATA=%3C%3Fxml+version%3D%221.0%22%3F%3E%0D%0A%3CSMS%3E%0D%0A%09%3Cuser%3EMax%3C%2Fuser%3E%0D%0A%09%3Cpassword%3E41a2bb1f0a4d8b14b876e2379bbabb4a%3C%2Fpassword%3E%0D%0A%09%3Ctyp%3E0%3C%2Ftyp%3E%0D%0A%09%3Ctimestamp%3E0%3C%2Ftimestamp%3E%0D%0A%09%3Ctext%3E%3C%21%5BCDATA%5BDies+ist+ein+SMS-Text.%5D%5D%3E%3C%2Ftext%3E%0D%0A%09%3Cfrom%3E1%3C%2Ffrom%3E%0D%0A%09%3Cto%3E0123%252F456789%3C%2Fto%3E%0D%0A%09%3Caction%3Einfo%3C%2Faction%3E%0D%0A%09%3Creturn%3Ehtml%3C%2Freturn%3E%0D%0A%09%3Chttphead%3E1%3C%2Fhttphead%3E%0D%0A%3C%2FSMS%3E%0D%0A
So kann eine Textantwort aussehen:
100
SMS erfolgreich versendet
Text: Dieser Text wird gesendet.
Zeichen: 26
SMS: 1
Absenderkennung: +49(123)456789
Ziele: +49(321)987654
Kosten: 0,059
Versenden: Sofort
So kann eine XML-Antwort aussehen:
<?xml version="1.0" encoding="iso-8859-1"?><answer><code>100</code>
<codetext>SMS erfolgreich versendet</codetext>
<info>Text: Dieser Text wird gesendet.Zeichen: 26
SMS: 1
Absenderkennung: +49(123)456789
Ziele: +49(321)987654
Kosten: 0,059
Versenden: Sofort</info></answer>
[Bearbeiten] Quellcodebeispiele
[Bearbeiten] PHP
<?phpdefine("WEBSMS_Discount",0);
define("WEBSMS_Basic",1);
define("WEBSMS_Pro",2);
define("ABSENDER_Handynummer",1);
define("ABSENDER_Kennung_1",2);
define("ABSENDER_Kennung_2",3);
define("ABSENDER_Kennung_3",4);
define("ABSENDER_Kennung_4",5);
function SMS_versenden($User,$Password,$Text,$Ziel,
$Absender = ABSENDER_Handynummer,
$Typ = WEBSMS_Discount,$Versenden = 0)
{if(strlen($Text) == 0) return array("Code" => 201,
"Codetext" => "Kein Text","Info" => "");
if(strlen($User) == 0 || strlen($Password) == 0) return array("Code" => 200
,"Codetext" => "Username und/oder Passwort falsch","Info" => "");
if(strlen($Text) > 1600) $Text = substr($Text,0,1600);
if($Absender < 1 || $Absender > 5) $Absender = 1;
if($Versenden < time()) $Versenden = 0;
if($Typ < 0 || $Typ > 3) $Typ = 0;
$url_parsed = parse_url("http://www.mmsclick.de/API/xmlsms.php");
$host = $url_parsed["host"];
$port = $url_parsed["port"];
if ($port==0) $port = 80;
$path = $url_parsed["path"];
if (empty($path)) $path = "/";
if ($url_parsed["query"] != "") $path .= "?".$url_parsed["query"];
$xml = "<?xml version=\\"1.0\\"?>\\r\\n<SMS>\\r\\n";
$xml .= " <user>".urlencode($User)."</user>\\r\\n";
$xml .= " <password>".md5($Password)."</password>\\r\\n";
$xml .= " <typ>".$Typ."</typ>\\r\\n";
$xml .= " <timestamp>".$Versenden."</timestamp>\\r\\n";
$xml .= " <text><![CDATA[".$Text."]]></text>\\r\\n";
$xml .= " <from>".$Absender."</from>\\r\\n";
$xml .= " <to>".urlencode($Ziel)."</to>\\r\\n";
$xml .= " <action>info</action>\\r\\n";
$xml .= " <return>html</return>\\r\\n";
$xml .= " <httphead>1</httphead>\\r\\n</SMS>\\r\\n";
$fp = fsockopen($host, $port, $errno, $errstr, 60);
if(!$fp) return array("Code" => 302,"Codetext" =>
"Verbindung fehlgeschlagen","Info" => "");
$out = "POST $path HTTP/1.1\\r\\n";
$out .= "Host: $host\\r\\n";
$out .= "Content-Type: application/x-www-form-urlencoded\\r\\n";
$out .= "Content-length: ".strlen("XMLDATA=".urlencode($xml))."\\r\\n";
$out .= "Connection: close\\r\\n\\r\\n";
$out .= "XMLDATA=".urlencode($xml);
fputs($fp,$out);
$body = "";
while(!feof($fp)) $body.= fgets($fp, 256);
fclose($fp);
$hnr = substr($body,9,3);
$body = ltrim(strstr($body,"\\r\\n\\r\\n"));
$mcode = trim(substr($body,0,strpos($body,"\\n")));
$body = ltrim(strstr($body,"\\n"));
$mtext = trim(substr($body,0,strpos($body,"\\n")));
$body = trim(strstr($body,"\\n"));
return array("Code" => $mcode,"Codetext" => $mtext,"Info" => $body);
}?><?php$Antwort = SMS_versenden("Max","PW von Max",
"Dies ist ein SMS-Text.","0123/456789");
if($Antwort["Code"] == 100)
echo "SMS gesendet!";
elseecho "Fehler!";
?></sorce></div>
