Когда я пытаюсь отправить уведомление со своего сервера, я получаю это сообщение: "Invalid token size"
Из этой ветки PushSharp не отправляет уведомления я узнал, что это может быть потому, что я Я пытаюсь использовать сертификат Sandbox для рабочего сервера или наоборот, но я так не думаю, поскольку у меня нет настройки производственного сертификата.
Затем я экспортировал сертификат разработки APN (.p12) и использовал его на сервере (как того требует PushSharp).
Я снова экспортировал файл .p12, чтобы убедиться, что сертификат является настоящим, но безуспешно.
Я также использую флаг «Песочница».
Вот код С#, который я использую:
static class APN
{
static PushBroker push = new PushBroker();
static byte[] appleCert = File.ReadAllBytes(@"C:\Certs\PineAppPushDev.p12");
static public void StartAPN()
{
Console.WriteLine("Starting APN ...");
/* Event listeners */
push.OnChannelException += broker_OnChannelException;
push.OnNotificationFailed += broker_OnNotificationFailed;
push.RegisterAppleService(new ApplePushChannelSettings(false, appleCert, "*****"));
}
static private void broker_OnChannelException(object sender, PushSharp.Core.IPushChannel pushChannel, System.Exception error)
{
Console.WriteLine("broker_OnChannelException:");
Console.WriteLine("PushChannel: " + pushChannel.ToString());
Console.WriteLine("Error: " + error.ToString());
}
static private void broker_OnNotificationFailed(object sender, PushSharp.Core.INotification notification, System.Exception error)
{
Console.WriteLine("broker_OnNotificationFailed:");
Console.WriteLine("Notification: " + notification.ToString());
Console.WriteLine("Error: " + error.ToString());
}
static public void SendAPN(string message, string deviceID)
{
Console.WriteLine("SendAPN");
Console.WriteLine("DeviceID: " + deviceID.ToString());
try
{
push.QueueNotification(new AppleNotification()
.ForDeviceToken(deviceID)
.WithAlert(message));
}
catch (Exception ex)
{
Console.WriteLine("ERROR: APN.SendAPN(): " + ex.ToString());
}
}
}
Не уверен, что мне не хватает, любая помощь очень ценится!
SendAPN()
или позже, когда вызывается один из ваших обратных вызовов? Вы проверили наличие ненужных символов вdeviceID
? - person peter_the_oak   schedule 25.06.2014