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 変数のトークンを実際のアカウント 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 に答える