Hey There! I did not know where to ask, if there is a better please let me know!
Background
The intention, behind these questions, is to handle the errors in the docs:
DeviceNotRegistered
: the device cannot receive push notifications anymore and you should stop sending messages to the corresponding Expo push token.
MessageRateExceeded
: you are sending messages too frequently to the given device. Implement exponential backoff and slowly retry sending messages.https://docs.expo.io/versions/latest/guides/push-notifications/
Question 1: How does one associate the error to a specific notification object?
For example assuming the following notification object is sent:
Notification Object Example:
[{"to":"ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]","title":"Test","body":"test","sound":"default"}, ...]
The response could be:
Ticket Example:
{
"data": [{
"status": "error",
"message": "\"ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]\" is not a registered push notification recipient",
"details": {
"error": "DeviceNotRegistered"
}
}, {
"status": "ok",
"id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}]
}
Question 2: Is the data id of the receipt the same id as the token?
Receipt Example:
{
"data": {
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": {
"status": "error",
"message": "The Apple Push Notification service failed to send the notification",
"details": {
"error": "DeviceNotRegistered"
}
},
"YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY": {
"status": "ok"
}
}
}
Question 3: How does one associate the receipt failure to a specific token?
Seriously, thank you for your time!