0

我需要使用 Twilio 服务和 NetDuino 发送消息。我知道有一个 API 允许发送消息,但它在后台使用与微框架不兼容的 Rest-Sharp。我尝试执行以下操作,但出现 401 错误(未授权)。我在这里得到了这个代码表(这正是我需要做的)

var MessageApiString = "https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/SMS/Messages.json";
var request = WebRequest.Create(MessageApiString + "?From=+442033*****3&To=+447*****732&Body=test");
var user = "AC4*************0ab05bf";
var pass = "0*************b";
request.Method = "POST";
request.Credentials = new NetworkCredential(user, pass);
var result = request.GetResponse();
4

1 回答 1

5

Twilio 布道者在这里。

从上面的代码来看,您似乎没有{AccountSid}将 MessageApiString 变量中的令牌替换为您的实际 Account Sid。

此外,您似乎将电话号码参数作为查询字符串值附加到 URL。因为这是一个 POST 请求,我相信您需要将这些作为请求正文包含在内,而不是在查询字符串中,这意味着您还需要设置 ContentType 属性。

这是一个例子:

var accountSid = "AC4*************0ab05bf";
var authToken = "0*************b";

var MessageApiString = string.Format("https://api.twilio.com/2010-04-01/Accounts/{0}/SMS/Messages.json", accountSid);

var request = WebRequest.Create(MessageApiString);
request.Method = "POST";
request.Credentials = new NetworkCredential(accountSid, authToken);
request.ContentType = "application/x-www-form-urlencoded";

var body = "From=+442033*****3&To=+447*****732&Body=test";
var data = System.Text.ASCIIEncoding.Default.GetBytes(body);

using (Stream s = request.GetRequestStream())
{
    s.Write(data, 0, data.Length);
}

var result = request.GetResponse();

希望有帮助。

于 2014-05-02T17:36:59.343 回答