How to create Firebase Cloud messaging recurring notifications without console? - google-cloud-functions

From FCM console I can not set up much more than 10 recurring notifications.
You can have up to 10 unique recurring notifications active per
project
I want to aim targeting audiences, user properties, last user engagement also. For example, you can set up a recurring notification that sends a push notification to a user who has been inactive for 2 days. From FCM console it is possible but I want to set it up manually since FCM console does not allow me to create recurring notifications much more than 10.

There is no API to create recurring notifications in Firebase Cloud Messaging. Since you already tagged your question with google-cloud-functions, you seem to know that you can create scheduled tasks with that.
To create a scheduled, recurring notification you can:
either run a function on a PubSub schedule or enqueue functions with Cloud Tasks, and
combine that with notifying the user when something interesting happens
From this documentation and the examples in it, you should be able to get the use-case working. If not, post another question with the minimal, complete code that any of us can run to reproduce where you got stuck.

Related

Azure API Management subscription event

When a developer ask to subscribe to a particular API product in the Dev Portal, if I checked the 'need approval' option, a workflow is created and the subscription is waiting to be approved by the administrator.
I have a use case where I need to do additional tasks before the approval, in particular I need to create an App in the AD for OAuth2 and set the right permissions.
I'm looking for a way to trigger a Power Automate workflow when a subscription is requested, then use the content of the event to execute tasks and then ask a user to approve the requested subscription (thanks to a Power Automate approval).
Unfortunately, the only way to be informed that a product subscription was requested is to receive an email and unfortunately, the content of this email cannot be customized. The default email content is not really useful to detect what subscription is about and to find additional settings.
Any ideas to manage this?
Here is a walkthrough which uses the Logic App to customize the subscription approval workflow. It might be helpful for your case as well. Check it out: https://github.com/adamhockemeyer/Azure-API-Management-Custom-Subscription-Approval

How to reload gmail add-on through background process using app-script

May i get some help on the below points where i am using app-script to develop a gmail add-on:
How can we refresh gmail add-on with back ground process?
=> Here is my case, I need to display card with multiple sections which is the process of hitting multiple apis to fetch data and to display the card. For this initially we will show a card with minimal information to the user once i get information from api, i need to update the basic cards with complete information.
How can we trigger a function on every mail thread open?
=> Currently it works once for a mail, here as explained above point need to refresh a card once we fetch the data. If not, user will be seeing same basic information card every time he opens the mail.
From above mentioned issues for point one we are trying to get solution where we can hit service for certain interval of time to check data availability and if data exists then fetch data and update cards, i mean to say need a setTimeout function kind of thing, unfortunately we did'nt found this in app script and We found sleep/waitLock functions in app-script, but my services may take little time to fetch data as it connects though multiple services so we cant make the user to wait until the whole process is to be completed. So that we will show a card with basic information required then after need to auto refresh the cards once we fetch the data. we tried of keeping refresh button for the user to click and fetch the updated data but here we are losing user experience, trying for auto refresh with out user interference to get updated information.
Need a process / solution where we can auto refresh the card with out user interference after the data available at our end instead of making user to wait until the process to be completed.
Earliest reply will be more helpful for us.
Thanks.
If a data status on a third-party backend changes as the result of a user interaction with your add-on UI, it is recommended that the add-on set a 'state changed' bit to true so that any existing client side cache is cleared. See the ActionResponseBuilder.setStateChanged() method description for additional details.
The card-based interface in Gmail Addons is an Apps Script Service.
You can interlink it with other Apps Script services as well as implement API calls - everything within the same Apps Script file.
Gmail Addons contents automatically update every time the user opens a different e-mail or refreshes his browser.
Within your Apps Script code you can install time-driven triggers to run the data availability check with a customized frequency.
Consider to install for your users an Auto Refresh extension if you do not want them to refresh the card themselves.

Programmatically fetch user's last login date to G Suite

On a user's page on the G Suite admin console, an admin can see the last login of a user. For example, one user I can see has a "last login" date of two years ago.
I'm trying to pull this date programatically. However, the Reports API that provides information on login events only goes back 180 days. How is Google getting this login date, and can it be fetched via API?
Google has this information because they are logging the event when it happens and storing that to present in the admin console. If you start to build an application now and start storing those events as time passes you too will have a date that goes back years. G Suite Enterprise customers can seamlessly do this if they Set up BigQuery logs in the Admin console.
You should be able to get this information now though. Look at the following APIs used in GAMADV-XTD you can get this info with this command for example.
gam report users parameters accounts:last_login_time filters "accounts:last_login_time<#filtertime#" filtertime -5y
https://developers.google.com/admin-sdk/reports/v1/reference/activities
https://developers.google.com/admin-sdk/reports/v1/reference/customerUsageReports
https://developers.google.com/admin-sdk/reports/v1/reference/userUsageReport
I somehow missed this before, but you can get the last login date/time with the User Usage Report (rather than the Login Activity report).
API docs are here and the App Script example I'm using is here. I realized that if GAM was pulling the information there had to be an API for it.

Trigger Scheduled Events from Yii2

Scenario
I am making a small Web application based on Yii2.
There are 2 entities 'User' and 'Admin' in my system.
Required solution for:
I want to know if there is any facility in Yii2 where I can trigger Scheduled Events like creating User Registration expiry, promotional emails and stuff ?
Currently I am triggering event when Admin logs in, but I want this Scheduled irrespective of whether Admin logs in or not.
Just create an action in console controller which will handle events and execute it regularly using CRON.

Displaying Tiles data with Time interval using Push Notifications in Metro Apps?

I have metro application in which I implemented Push notification concept for getting single message.If I get more than 1 notification,still my application tile is able to show only 1 notification(msg).Am not able to do how to display multiple notifications for time-specific.Means do I need to write any extra code for displaying multiple notifications on my tile.If so, where should I need do write either client-side or server-side?
Thank you.
There are several ways to look at updating, and depending on what your end goal is, you may end up implementing the code either on the client, or the server, or a little of both.
For the scenario you describe, you need to use Windows Notification Services to push the notification each time you want a new tile notification. Typically, this is done by having a service running in the cloud (a website, or a Windows Azure service, or similar), that calls Windows Notification Service and sends a tile update to the app when something of interest occurs.
If what you want is for multiple notifications to cycle on the tile, that's enabled by calling the enableNotificationQueue method on the TileUpdater class:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.notifications.tileupdater.enablenotificationqueue.aspx
Per the comment below, enableNotificationQueue works for any notification source. But if you want to pull information from a remote service, rather than using push, you can use scheduled polling as means of updating the tile using remote information, as described here:
http://msdn.microsoft.com/en-us/library/windows/apps/Hh761476.aspx
Combined with the call to enableNotificationQueue, it may also enable the scenario you're looking for.