/dialogflow-updates-nodejs

Daily Updates & Push Notifications Sample (using Dialogflow) in Node.js

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Actions on Google: Daily Updates and Push Notifications Sample

⚠️ Warning: Conversational Actions will be deprecated on June 13, 2023. For more information, see Conversational Actions Sunset.

This sample demonstrates Actions on Google user engagement features for use on Google Assistant including daily updates and push notifications -- using the Node.js client library and deployed on Cloud Functions for Firebase.

⚠️ This code sample was built using Dialogflow. We now recommend using Actions Builder or the Actions SDK to develop, test, and deploy Conversational Actions.

Setup Instructions

Prerequisites

  1. Node.js and NPM
    • We recommend installing using NVM
  2. Install the Firebase CLI
    • We recommend using version 6.5.0, npm install -g firebase-tools@6.5.0
    • Run firebase login with your Google account

Configuration

Actions Console

  1. From the Actions on Google Console, New project > Create project > under More options > Conversational
  2. From the top menu under Develop > Actions (left nav) > Add your first action > BUILD (this will bring you to the Dialogflow console) > Select language and time zone > CREATE.
  3. In the Dialogflow console, go to Settings ⚙ > Export and Import > Restore from zip using the agent.zip in this sample's directory.

Cloud Platform Console

  1. In the Google Cloud Platform console, select your Project ID from the dropdown
  2. From Menu ☰ > APIs & Services > Library > select Actions API > Enable
  3. Under Menu ☰ > APIs & Services > Credentials > Create Credentials > Service Account Key.
  4. From the dropdown, select New Service Account
    • name: service-account
    • role: Project/Owner
    • key type: JSON > Create
    • Your private JSON file will be downloaded to your local machine
  5. Save private key as service-account.json in functions/

Daily Updates and Push Notifications

  1. Back in the Actions on Google console > under the top menu Develop > Actions (left nav):
  2. Select the tell_tip intent > under User engagement:
    • Enable Would you like to offer daily updates to users?
    • Title: advice Alert > Save
  3. Select the tell_latest_tip intent > under User engagement:
    • Enable Would you like to send push notifications? If yes, user permission will be needed
    • Title: latest info Alert > Save

Firestore Database

  1. From the Firebase console, find and select your Actions on Google Project ID
  2. In the left navigation menu under Develop section > Database > Create database button > Select Start in test mode > Enable

Firebase Deployment

  1. On your local machine, in the functions directory, run npm install
  2. Run firebase deploy --project {PROJECT_ID} to deploy the function
    • To find your Project ID: In Dialogflow console under Settings ⚙ > General tab > Project ID.

Dialogflow Console

  1. Return to the Dialogflow Console > select Fulfillment > Enable Webhook > Set URL to the Function URL that was returned after the deploy command > SAVE.
    Function URL (aogTips): https://${REGION}-${PROJECT_ID}.cloudfunctions.net/aogTips
    
  2. In a browser, go to https://${REGION}-${PROJECT}.cloudfunctions.net/restoreTipsDB, to add data to the Firestore database.
  3. From the left navigation menu, click Integrations > Integration Settings under Google Assistant > Enable Auto-preview changes > Test to open the Actions on Google simulator then say or type Talk to my test app.
    • To test daily updates, choose a category and below the tip, there will be a Send daily suggestion chip to subscribe for daily updates.
    • To test push notifications, choose most recent and below the tip, there will be an Alert me of new tips suggestion chip to subscribe for push notifications. Then you will need to add a tip to Firestore DB to receive the push notification.

Push Notifications Configuration

  1. Then add a new tip to the Firestore Database to trigger a notification to the subscribed users. In the tips collection > select Add document:
    • Document ID: select Auto ID
    • field: category, type: string, value: tools
    • field: created_at, type: string, value: 2019-04-29T015:00:00.000Z and modify value to current date/time
    • field: tip, type: string, value: Here's the most recent info about tools
    • field: url, type: string, value: https://developers.google.com/actions/assistant/updates/notifications

Running this Sample

  • You can test your Action on any Google Assistant-enabled device on which the Assistant is signed into the same account used to create this project. Just say or type, “OK Google, talk to my test app”.
  • You can also use the Actions on Google Console simulator to test most features and preview on-device behavior.

Troubleshooting

  • When testing on an iOS device, ensure that notifications are enabled for Assistant under settings.

References & Issues

Make Contributions

Please read and follow the steps in the CONTRIBUTING.md.

License

See LICENSE.

Terms

Your use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the Google APIs Terms of Service.