When sending messages via Firebase Cloud Messaging, the repsonse from FCM servers tell about the processing of the Request but not whether it was delivered or not to the device.
So, for offline devices how could we know whether message was delivered?
For example,
{"multicast_id":7138524052704576147,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1472139369768700%d42090b5d42090b5"}]}1
the above JSON is a response from FCM server for request with time_to_live:0 and priority:'high' but the situation is that device for which I want to receive the message is offline.
Is there any possible way to detect if the device is offline?
Yes. If you link your FCM API key with Developer Console, you have access to View FCM statistics and issues. In particular:
Using FCM Diagnostics, you can troubleshoot messages sent through FCM. You can look up the message(s) by registration token or message ID.
…
You can look up messages sent through Firebase Cloud Messaging with a registration token or message ID.
The message status returned indicates whether the message was delivered, stored, expired, etc.
Note that this diagnostic tool should only be used if you have a made a recent request. This is what the Developer Console says in the FCM Diagnostics section:
This is not a real-time diagnostic tool, the data shown may be a few minutes out of date, and is only kept for a few days. If you do not see the data that you were expecting, please try again after a short while.
Related
I am using scratchpad to explore this api. I am able to use item search and item lookup however I have not been able to successfully use cartCreate a single time. I am getting this error:-
Do i need to ask for a special permission to use cartCreate ?
Error! RequestThrottled
HTTP Status 503: Service Unavailable
AWS Access Key ID: __my_key___. You are submitting requests too quickly. Please retry your requests at a slower rate.
PS: So far I have only generated few sales from my affiliate account and signed up for this api. Could that be a reason for this throttling? Is there any developer account which is not subject to such throttling so that I can continue with the exploratory work.
Thanks
CartCreate has been removed in the new API version. Instead, you have to create your own Add To Cart link or form:
https://webservices.amazon.com/paapi5/documentation/add-to-cart-form.html
In general, you'll want to minimize the number of requests you're making, as it's very easy to bump up against those throttling limits.
Source : https://forums.aws.amazon.com/thread.jspa?threadID=318920
I had exactly the same problem :
I think you explore scratchpad from
https://webservices.amazon.fr/scratchpad/index.html#
with is the old API version
With your account (and mine) I get a disturbing error message : HTTP Status 503
You should use the new scratchpad version for the API 5 of Amazon Product Advertising :
https://webservices.amazon.com/paapi5/scratchpad/index.html
Make the same request, and you should see all is ok
I am implementing Web Push Notification in an application and I have successfully registered the client app with GCM. I have the subscription object that contains the endpoint that looks like this.
"https://android.googleapis.com/gcm/send/dV4lSfI5J6Q:APA91bEU28F9YG5qNr3xSjvYlH2Mh1GPgiqMaRcjandHbpfqnVyAeZxqoE31OXYq4yzW2_vrkn74YHdgsITZP_6SELO8-xHf1hylquJefJdY85-Xx9AWTAPP9H6kfq7CKp23dsoQHbH
I read and found out that we need to use a third party library like web-push to send push using this endpoint to the clients because the payload needs to be encrypted according to spec. My objective is to send notifications to all my users, web + mobile, at once, using Firebase Console's Notification feature.
Is there a way to send push to web clients using Firebase console or to convert the GCM endpoint to an FCM token?
Update: If I try to use Firebase console to send push the token generated above, I get the following error.
As per testing this out, for some reason, registration tokens for Web are not working or allowed in the Firebase Console. Only tokens for Android and iOS do:
The request could still proceed where the console would show that it is sent/complete, but there wouldn't be any messages received.
Is there any possibility to retrieve/get GCM message_id in service worker push event?
We have built an application to send browser push notification, and for notification data (title, body, image, etc.) we retrieve through our internal API. All seems working as expected, but we need to pass GCM message id to our API and according to GCM message_id we serve relevant notification data to requested service worker event.
Can anyone share your idea's or solution how to pass GCM message_id?
We tried a lot but haven't found any solution.
we have an production issue where the order is submitted twice. Currently we have an API for order and we are exposing this to client using API management and in these we have policies for URL mapping for customer facing to actual .
Now , our actual API got 2 request so we thought customer submitted twice but they have confirmed that they have not submitted twice , so either there is issue with API management which fired 2 request.
How can i Identify the request received by the API management ?
Is there any chance that API management will fire the request twice ?
Appreciate any pointers
The only way to fire request twice in APIM would be by the means of Retry policy or manually using SendRequest. Otherwise it should be a client calling your API two times. Each request in APIM get it's own unique id accessible in policies as context.RequestId, this is the main way to track and identify them. But these ids are produced inside APIM itself thus are useful only if you're tracking a call from APIM and into backend.
Your best option now is to try to identify requests by client ip, method, uri, and time frame. APIM allows you to grab logs for certain periods of time (better if kept short) in JSON or CSV with data I mentioned above. To do that look into byRequest report (https://learn.microsoft.com/en-us/rest/api/apimanagement/reports#ReportByRequest), grab JSON/CSV and try to identify calls of interest,
For future you could look into onboarding your service to azure monitor (https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-use-azure-monitor) or log analytics those provide easier way to traverse logs.
I need advice after looking a lot about receive push/toast notifications regardless of the status of the application (closed or open).
The application communicates with a NodeJS API.
The idea is that a user logs in once to the application and then can receive notifications (depending on his account): i the user restarts his system for example, at startup he receives notifications without having to open the application (like the Mail application for example).
Most tutorials on MSDN use Azure and I don' use this. I would like to know if you have tips or links (tutorials, ...) for doing this in an UWP (or WinRT) application.
Thanks in advance for your help.
Regards
You can send push notifications from your NodeJS api via Windows Notification Service. This service has nothing to do with azure but when using Azure Notifications Hub it will be easier to get it implemented, but again this is not required;
In essence:
- register your app in dev center
- obtain a client id and client secret to use WNS in the dev center
- When your app launch it obtains a push notification channel uri and sends this to your backend. Your backend need to save all the URI's for the different devices
- When you have a notification select the uri's of the devices you want to send the push notification to
- post a xml message (based on what you want to update, tile, toast, badge or raw) to the URI's. To be able to post you need to authenticatie with the client id and client secret
more detailed read: https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-windows-push-notification-services--wns--overview#