Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PushSharp doesn't send notifications

I have got a simple code:

PushBroker pushBroker = new PushBroker();
string path = HttpContext.Current.Server.MapPath("~/" + AppSettings.CertificatePath);
var appleCert = File.ReadAllBytes(path);        
pushBroker.RegisterAppleService(
           new ApplePushChannelSettings(AppSettings.IsProductionPushNotificationServer,
                                        appleCert,
                                        AppSettings.CertificatePassword));

var notification = new AppleNotification().ForDeviceToken(deviceToken.TrimStart('<').TrimEnd('>'))
                                          .WithBadge(unviewedInvitationCount);

pushBroker.QueueNotification(notification);

I try to use development and production sertificates with Sandbox and Production server respectively. But nothing is happened. Client side is able to get the push notifications. What's wrong? Thanks in advance.

UPDATED:

I subscribed on the events.

OnNotificationFailed says me about this error:

{APNS NotificationFailureException -> 5 : Invalid token size -> {"aps":{"badge":1}}}

And if I wrap my device token into <...> I receive another error:

{APNS NotificationFailureException -> 8 : Invalid token -> {"aps":{"badge":1}}}
like image 919
Neshta Avatar asked Apr 24 '14 09:04

Neshta


1 Answers

Your device token shouldn't have any spaces and '<' or '>' characters. It should contain 64 hexadecimal characters. If it doesn't, that explains the first error (invalid token size).

i.e, not <3948de8f 3948de8f ...> nor 3948de8f 3948de8f ...

Only 3948de8f3948de8f...

The second error (invalid token) probably means that you used a sandbox device token to push to the production APNS server or vice versa. Sandbox tokens shuold only be used in the sandbox env.

like image 108
Eran Avatar answered Nov 15 '22 17:11

Eran