Sometimes DeviceSubscriptionExpired event is firing on not expired device ids.#PushSharp - push-notification

I am sending Push notification messages from my asp.net web site to Android and iPhone.I am using push-sharp version is 2.1.2.0-beta lib.I can send push notification messages successfully and having status log for each message along with there Device ID.
I found more that 100 device which was having DeviceSubscriptionExpired(PushSharp Event). I check those devices on my database, i found those same device id was successfully on the same day.I am suspecting that those devices are not expired but DeviceSubscriptionExpired event is fired for some reason or apple and google server responding with Subcription expired.
I can't figure it out why it is happening. Can anyone please suggest?
Note: My apps are designed such a way that it will request device id on each application start and update the latest device id if it is changed.

Maybe you are using a developer certificate, you should check you are using the production if you are sending push to production apps.

Related

How does browser message server identify the particular browser to send message for push notification

I understand chrome uses GCM message server to send messages that are sent from server. But how does it identify which browser to send.
Does browser sync with the message server when it gets a active internet connection?
From this thread, it is stated here that there is some kind of ID for a users device and then on the server side match up the native app and web app subscription ID's and decide which one to send a push message.
For more information, check the these threads that can hep you to determine how the push message work on both Chrome and Mozilla.
Push Notifications on the Open Web
Push API
GCM Equivalent for Firefox

Kinvey OnPushReceived event is never received

I have configured the Kinvey account for both Android and iOS.
I uploaded the .p12 certificate for iOS and have created an application in Google Developer console for the GCM.
When my application logs in to Kinvey, I am getting a Token for the user.
The application then Registers the device and I receive back a Device Token which is written to the Kinvey Users table. At this point, it is clear that the Kinvey connection is valid as I read other tables from Kinvey.
I am receiving events from the TPushEvents component:
OnDeviceTokedReceived,
OnDeviceRegistered.
This is occurring on both platforms: Android and iOS.
The question is why am I not getting the OnPushReceived event?
I log into the Kinvey Console and send a push event. It shows that the Push was sent to 3 users (2 android and 1 iOS device that are registered) but I am never getting the event on the device.
Kinvey Console and TKinveyProvider
I'm not titled to give you a comment to (missing some likes) your post, so I must give you an "answer" to get som more information...
Have you added an eventhandler such as "TForm1::PushEvents1PushReceived" handler to check if you actually receive a push ?
Turn OFF your app and send a push when it is not on, you should receive a message in the notification list on your device (will not appear if your app is running).
Check if following settings are set
->'Project'->'Options...'->'Entitlement List'->'Receive push notifications': true
->'Project'->'Options...'->'Uses Permissions'->'Internet': true (default)

Can I find out if an Android iOS or Windows Phone 8 push notification was delivered?

Can you interrogate the Apple (APNS), Google (GCM) or Windows Phone push notification servers after the fact to find if a notification was delivered?
I know that when a server initially sends the push notification there is a response to say whether the message was processed (but this doesn't mean delivered) or rejected by the notification server. But is there any way to subsequently find out via Android, iOS or Windows Phone 8 if the message was delivered?
Ideally I'd like to achieve this just by interrogating the vendor's push notification server, worst case I'm assuming I'd have to put something in my app to register that a given notification arrived and somehow transmit this success status back to my server.
APNS, GCM and MPNs don't offer this functionality.
You'll have to support it yourself, by sending an acknowledgment from the app to your server whenever a notification reaches your app.
For GCM you can view statistics of deliveries, but nothing for individual deliveries :
Viewing Statistics
To view statistics and any error messages for your GCM applications:
Go to the Developer Console.
Login with your developer account.
You will see a page that has a list of all of your apps.
Click on the "statistics" link next to the app for which you want to view GCM
stats.
Now you are on the statistics page.
Go to the drop-down menu and select the GCM metric you want to view.
Note: Stats on the Google API Console are not enabled for GCM. You
must use the Developer Console.

apns service conformation procedure

once i submitted app to app store by enabling push notifications for that particular app id and i generated the certificate fro production and i saved in my server.
now i want to test my push notifications are working or not,now my doubt is if i use the same bundle id for my another project and keeping the same certificate which i generated for production apns on my server. if i send notifications now to that certificate will notifications work or won't work. i was confused totally after having lot of discussion with my friend.
in my point of view they won't work,but i am unable to clarify him clearly,let me know what is process once we send a notification to apple server by using particular certificate. whether it looks fro bundle identifiers or any thing
thankyou......
The process of push notification is that your server send message with the attachment of device token you added in the server end.
On apple server apple fetch the device token and send the message to the device token you send.
Now when the message received in iPhone, iphone check the bundle identifier that was registered with the certificate you have created at server level while enabling push notification.
And if that identifier matches with any of the app you have in your iPhone whether it`s the same app you have registered your push or other. It will only check the bundle identifier and show the notification on your device.
Now both the production and developer certificates are different so it will not show the notification if you are sending push from certificates generated with developer mode and checking on production application.
Regards
Abhishek Goyal

APNS Push Requests are successfully sent but passes are not updating

I have an app set up to generate passbook passes. The successfully install on the device and I can do manual (pull-down) updates.
Next I began to implement APNS. I'm using the enhanced request method to connect to the production environment, sending in an empty payload (as required) and it returns no error codes when I request a push notification, but my pass never updates and I see no requests hitting my server. I'm using my own device to test until I can get see an update for myself. No pass updates are received.
I then implemented the Feedback service in the hope that it might tell me something. I noticed this. If I pass in the push token, I receive a response which indicates that the device is not receiving notifications (even though the pass is set for automatic updates). The pass is not updated.
I'd appreciate any info into why the the push notifications do not seem to be arriving.
Thanks.
-Erich
One gotcha to check is that you are not using the sandbox APNS server. All Passbook push requests should be sent to the live APNS server.
Try enabling the additional logging option from the PassKit section of the Developer Settings on your device then connecting your device to Xcode and monitoring the console as you send the push. If the push is received, then you should be able to see your device requesting the serials to be updated from your webservice and you should also see your server's response.
Assuming you send a serial and that it matches the serial installed on your device, you should then see the device requesting the updated .pkpass bundle.
If no push is received, try toggling automatic updates on and off while monitoring the device console. It could be that the device is not receiving a valid registration (201) response or that you are using a stale token - you'll be able to see these via the console.

Resources