2016-07-16 124 views
1

我想實現使用第三方API的發送消息功能。 API- https://api.txtlocal.com/send/如何使用textlocal API發送短信..?

但是當我們測試實現時,我們遇到了錯誤代碼3的問題,並給出了一條消息作爲「無效的用戶細節」。

發現下面的C#代碼:

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; 

錯誤詳細信息:

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

即使我路過的有效憑證。

請幫助我,讓我知道,以防您需要任何更多的細節。

非常感謝,並提前感謝您的幫助。

+0

我絕不會使用第三方api發送機密信息。寧願使用我自己的電子郵件服務器以郵件形式發送消息。 – jdweng

+0

@jdweng你怎麼知道這是保密信息,OP想發送? – derpirscher

+0

@jdweng我同意您的反饋,但客戶自身要求使用此第三方在成功註冊到系統後發送短信。 –

回答

0

爲您應該通過您的參數值無論是在 POST請求或在網址 GET請求的API狀態的文檔。 WebClient.UploadValue默認情況下會執行POST,但不會相應地設置標題。所以沒有找到憑證。

您可以嘗試使用WebClient.UploadValues(name, method, values)重載並指定GET作爲方法。

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

我相信你應該發送API密鑰或用戶名和密碼。

從您的請求中刪除用戶名,只留下API密鑰,發件人,號碼和消息。那麼所有工作都應該可以。