Liebe Delphianer
ich habe da einen interessanten FreeSMS-Anbieter gefunden. Unsere Software arbeitet zwar üblicherweise mit
Indy und einem Gateway für den Versand von SMS, aber unsere ganz kleinen Kunden haben kein eigenes Gateway und denen haben wir bisher ein Interface zu Skype angeboten. Nun hat aber Skype sein
API ausser Betrieb genommen. Nach langer Suche sind wir jetzt auf
http://www.freesmsgateway.com/api gestossen. Die bieten 100 SMS pro Monat gratis an und das reicht für unsere Bedürfnisse allemal.
Nun aber endlich zum Problem. Der Link oben verweist auf das
API des Anbieters. Ich bekomme da auch schön eine Verbindung hin, habe es schon geschafft, den Text zu 'URLencoden', nur wie ich die Telefonnummer in ein JSON-Array bekommen und dieses noch als Parameter weiter geben soll, ist mir einfach zu hoch. Dass es so wie unten nicht klappen kann, ist klar, aber wie?
Code:
procedure TForm2.PostExample;
var param : TStringList;
valid : boolean;
url : string;
text : string;
EText : string;
jsobj : TJsonObject;
jsa : TJsonArray;
begin
param := TStringList.create;
param.Clear;
param.Add('access_token = 43efcb76....................e3fdb6');
EText := TIdURI.URLEncode('http://' + Edit1.Text);
Delete(EText, 1, 7);
param.Add('message = ' + EText);
param.Add('send_to=post_contacts');
jsObj := TJsonObject.Create();
jsa := TJsonArray.Create();
jsa.AddElement(Edit2.Text);
param.Add('post_contacts=' + jsobj);
valid := true;
url := 'http://www.FreeSMSGateway.com/api_send';
try
text := http.Post(
url,param);
except
on E :
Exception do
valid := false;
end;
if valid then
showmessage(text)
else
showmessage( '' );
end;