@EdwinHoksberg I am rereading FCM documentation this morning. It turns out your documentation on expected responses is not wrong - there are multiple types of responses based on message type. There are 3 different types of protocols to communicate push notification messages and I am not fully understanding the difference between the three.
1. HTTP v1 API - I don't fully understand this one - this might be client APP direct to FCM server API - not certain though
2. XMPP Server protocol - I think this is just an xml version of the json oriented protocol.
3. Legacy HTTP Server Protocol - app server to client app via FCM. This is whats being used in this fcm-php repository, not certain why they refer to it as legacy though
The below are references to the Legacy HTTP Server Protocol
Sets up who you are trying to communicate with (IDs, Topics, etc) https://firebase.google.com/docs/cloud-messaging/http-server-ref#downstream-http-messages-json
This defines the message / notfication payload (ie: sound,icon, badge, etc): Notice, there are 2 tables: 2a for iOS and 2b for Android - finding the overlap is probably the better/universal way to go: https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-payload-support
The response messages:
a. https://firebase.google.com/docs/cloud-messaging/http-server-ref#interpret-downstream
b. Table 5: to or registration_ids JSON response (this is whats defined in your documentation
c. Table 6: topic JSON response - this is what I am getting when sending messages to my groups
d. Table 7 (Success) & Table 8 (Error) - responses to plain text (non JSON) HTTP messages
Your documentation is right...I just need to add additional documentation for both how to send notifications to a topic and for the topic responses.
I added support for all of the following:
iOS only:
* badge
* subtitle
Android only:
* tag
* color
* icon
Both:
* title (done)
* body (done)
* sound (added)
* addData (existed)
* addDataArray (added)
I plan to add support for the following, could use some help though.
* android_channel_id
* click_action
* body_loc_key
* body_loc_args
* title_loc_key
* title_loc_args
Documentation:
Updated Messages.rst file with better examples, explanations and more extensive notes showing proper responses (success/fail) for each of the kinds of messages that can be sent. Might need your help cleaning it up though to keep it inline with proper github document formatting - I never contributed to repository before so its probably not consistent with proper methods.