0

C#を使用してUrbanAirship経由でiPodにテスト通知を送信しようとしています。WindowsサーバーからUrbanAirshipに通知を送信しようとする多くのコードスニペットを試しましたが、常に401エラーが発生します。

これが私の最新のコードです:

string postData = "{\"aps\": {\"badge\": 1, \"alert\": \"Hello from Urban Airship!\"}, \"device_tokens\": [\""+ devToken +"\"]}";

var uri = new Uri("https://go.urbanairship.com/api/push/");
var encoding = new UTF8Encoding();
var request = (HttpWebRequest)WebRequest.Create(uri);
char[] charArray = Encoding.UTF8.GetChars(Encoding.UTF8.GetBytes(postData));
request.Method = "POST";
request.Credentials = new NetworkCredential(username, password);
request.ContentType = "application/json";
request.ContentLength = encoding.GetByteCount(charArray);

using (var stream = request.GetRequestStream())
{
   stream.Write(encoding.GetBytes(postData), 0, encoding.GetByteCount(postData));
   stream.Close();
   var response = request.GetResponse();
   response.Close();
}

注:ユーザー名とパスワードが正しいことを確認しました。

===更新===

私のurbanairshipの設定などで何か問題があると思いますが、次のように機能しました。

curl -X PUT -u "appKey:appSecret" -H "Content-Type: application/json" --data '{"alias": "myalias"}' https://go.urbanairship.com/api/device_tokens/myTOken/ 
4

1 に答える 1

0

修正しました。コードを変更しました。最も重要なのは、パスワードがアプリケーションマスターシークレットであるということです。

string postData = "{\"aps\": {\"badge\": 1, \"alert\": \"Hello from Urban Airship!\"}, \"device_tokens\": [\""+ devToken +"\"]}";

var uri = new Uri("https://go.urbanairship.com/api/push/");
var encoding = new UTF8Encoding();
var request = (HttpWebRequest)WebRequest.Create(uri);
char[] charArray = Encoding.UTF8.GetChars(Encoding.UTF8.GetBytes(postData));
request.Method = "POST";
request.Credentials = new NetworkCredential(username, password);
request.ContentType = "application/json";
request.ContentLength = encoding.GetByteCount(charArray);

using (var stream = request.GetRequestStream())
{
    stream.Write(encoding.GetBytes(postData), 0, encoding.GetByteCount(postData));
    stream.Close();
    var response = request.GetResponse();
    response.Close();
}
于 2012-10-30T21:25:41.520 に答える