So I had a post on my Google+ (I know that was my reaction too) page from a user who was having trouble with UPS, user-data, and Android. I'm not sure WHERE his problem is, but I will describe it here and we can discuss further.
Let's say we send the following to UPS using the sender API :
{
"message": {
"alert" : "Remote service failed. View FAQs.",
"sound": "default",
"badge": -1,
"user-data": {
"SXM": {
"CATEGORY" : "SERVICE",
"SERVICETYPE": "Remote",
"SRID": "BB4FC7F0-15E9-11E6-9F41-0050569C3256",
"APPCONTENT": "UNKNOWN",
"STATUS": "FAIL",
"STATUSCHANGE_DATETIME": "UNKNOWN",
"URL": "XYZABC.com"
}
}
}
}
Android will receive the following message bundle from Google :
Bundle[
{aerogear-push-id=3f2b9477-fc9e-463a-94d7-d62bf55706e1,
SXM={CATEGORY=SERVICE, SERVICETYPE=Remote, SRID=BB4FC7F0-15E9-11E6-9F41-0050569C3256, APPCONTENT=UNKNOWN, STATUS=FAIL, STATUSCHANGE_DATETIME=UNKNOWN, URL=XYZABC.com},
alert=Remote service failed. View FAQs.,
badge=-1,
sound=default,
collapse_key=do_not_collapse}
]
As we can see, several things have happened. 1) user-data has been rolled up into a root element, and the SXM root object's JSON body has been stripped of its jsonness. IDEALLY we would be able to keep the body of userdata as a string for user's to handle themselves.
I THINK this is an issue with how UPS converts the message for sending to GCM, but i haven't researched that far.
Summers