首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Textlocal API发送短信?

如何使用Textlocal API发送短信?
EN

Stack Overflow用户
提问于 2016-07-16 21:30:28
回答 4查看 12K关注 0票数 2

我正在尝试使用第三方api实现发送消息功能。API-https://api.txtlocal.com/send/

但是,当我们测试这个实现时,我们遇到了一个错误代码为3的问题,并给出了一条“无效用户详细信息”的消息。

C#代码:

代码语言:javascript
复制
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;

错误详细信息:

代码语言:javascript
复制
 {
    "errors": [{
        "code": 3,
        "message": "Invalid login details"
    }],
    "status": "failure"
}

即使我传递的是有效凭据。

如果您需要更多的详细信息,请帮助我并让我知道。

感谢并提前感谢您的帮助。

EN

回答 4

Stack Overflow用户

发布于 2016-07-17 00:42:07

API的文档指出,您应该在POST请求的头部或GET请求的url中传递参数值。WebClient.UploadValue在默认情况下执行POST,但是您没有相应地设置头部。因此找不到任何凭据。

您可以尝试使用WebClient.UploadValues(name, method, values)重载并指定GET as方法。

代码语言:javascript
复制
NameValueCollection values = ...;
byte[] response = wb.UploadValues("https://api.txtlocal.com/send/", "GET", values);
票数 2
EN

Stack Overflow用户

发布于 2017-11-15 18:43:25

我认为您应该发送API密钥或用户名和密码。

从你的请求中删除用户名,只留下API密钥、发送者、号码和消息。那么一切都应该正常工作了。

票数 1
EN

Stack Overflow用户

发布于 2019-06-21 13:41:41

这是对我有效的方法:

代码语言:javascript
复制
[HttpGet]
public async Task<JObject> SendOtp(string number)
{
    using (var client = _httpClientFactory.CreateClient())
    {
        client.BaseAddress = new Uri("https://api.textlocal.in/");
        client.DefaultRequestHeaders.Add("accept","application/json");
        var query = HttpUtility.ParseQueryString(string.Empty);
        query["apikey"] = ".....";
        query["numbers"] = ".....";
        query["message"] = ".....";
        var response = await client.GetAsync("send?"+query);
        response.EnsureSuccessStatusCode();
        var content = await response.Content.ReadAsStringAsync();
        return JObject.Parse(content);
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38411714

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档