2016-07-16 10 views
1

Ich versuche, die Funktion zum Senden von Nachrichten mit Drittanbieter-API zu implementieren. API-https://api.txtlocal.com/send/Wie sende ich sms mit textlocal api ..?

Aber wenn wir die Implementierung testen, stehen wir vor einem Problem mit Fehlercode 3 und eine Nachricht als "ungültige Benutzerdetails".

finden unter C# -Code:

string UserId = "1234"; 
    String message = HttpUtility.UrlEncode("OTP"); 
    using (var wb = new WebClient()) 
    { 
     byte[] response = wb.UploadValues("https://api.txtlocal.com/send/", new NameValueCollection() 
      { 
      {"username" , "<TextLocal UserName>"}, 
      {"hash" , "<API has key>"}, 
      {"sender" , "<Unique sender ID>"}, 
      {"numbers" , "<receiver number>"}, 
      {"message" , "Text message"}     
      }); 
     string result = System.Text.Encoding.UTF8.GetString(response); 
     //return result; 

Fehlerdetails:

{ 
    "errors": [{ 
     "code": 3, 
     "message": "Invalid login details" 
    }], 
    "status": "failure" 
} 

Auch wenn ich vorbei gültige Anmeldeinformationen.

Bitte assistieren Sie mir und lassen Sie mich wissen, falls Sie weitere Informationen benötigen.

Vielen Dank und schätzen Sie Ihre Hilfe im Voraus.

+0

Ich würde niemals eine Drittpartei API verwenden, um vertrauliche Informationen zu senden. Würde lieber meinen eigenen E-Mail-Server verwenden, um Nachrichten als E-Mail zu versenden. – jdweng

+0

@jdweng Woher weißt du, dass es vertrauliche Informationen sind, die OP senden möchte? – derpirscher

+0

@jdweng Ich stimme Ihrem Feedback zu, aber es ist eine Anforderung vom Kunden selbst, diese dritte Partei zu verwenden, um eine SMS nach der erfolgreichen Registrierung im System zu senden. –

Antwort

0

Die Dokumentation für die API besagt, dass Sie Ihre Parameterwerte entweder im Header für POST-Anfragen oder in der url für GET-Anfragen weiterleiten soll. führt standardmäßig einen POST aus, aber Sie setzen die Kopfzeile nicht entsprechend. Also keine Zugangsdaten gefunden.

Sie könnten versuchen, die WebClient.UploadValues(name, method, values) Überladung zu verwenden und GET als Methode angeben.

NameValueCollection values = ...; 
byte[] response = wb.UploadValues("https://api.txtlocal.com/send/", "GET", values); 
0

Ich glaube, Sie sollten entweder die API-Schlüssel oder den Benutzernamen und Passwort.

Entfernen Sie den Benutzernamen von Ihrer Anfrage und lassen Sie einfach den API-Schlüssel, Absender, Nummern und Nachricht. Alles sollte dann OK funktionieren.