我需要使用Twilio服务和NetDuino发送消息。 我知道有一个API允许发送消息,但它使用Rest-Sharp后面的场景与微框架不兼容。我尝试做类似下面的事情,但我得到401错误(未经授权)。我得到了这段代码here(这正是我需要做的)
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();
答案 0 :(得分:5)
Twilio传道者在这里。
从上面的代码看,你看起来并不是用你的实际账户Sid替换MessageApiString变量中的{AccountSid}
令牌。
此外,您似乎将电话号码参数作为查询字符串值附加到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();
希望有所帮助。