GithubHelp home page GithubHelp logo

googleaudionotes's Introduction

Actions on Google: Account Linking with Google Sign-In Sample

This sample demonstrates Actions on Google features for use on Google Assistant including account linking and Google Sign In -- using the Node.js client library, Firebase Authentication, and deployed on Cloud Functions for Firebase.

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 [email protected]
    • Run firebase login with your Google account

Configuration

Actions Console

  1. From the Actions on Google Console, add a new project > Create Project > under More options > Conversational
  2. On the left navigation menu under Advanced Options > Account linking:
    • Account creation > select Yes, allow users to sign up for new accounts via voice.
    • Linking type > select Google Sign In.
    • Client information > copy Client ID > Save.
  3. In the functions folder, create a .env file and declare CLIENT_ID=${CLIENT_ID}, replacing ${CLIENT_ID} from the previous step.
  4. From the left navigation menu under Build > Actions > Add Your First Action > BUILD (this will bring you to the Dialogflow console) > Select language and time zone > CREATE.
  5. In the Dialogflow console, go to Settings ⚙ > Export and Import > Restore from zip using the agent.zip in this sample's directory.

Firestore Database

  1. From the Firebase console, find and select your Actions on Google Project ID
  2. From Settings ⚙ > Project settings > Service accounts > Firebase Admin SDK > Node.js > Generate new private key
  3. Save private key in functions/ and rename the file to service-account.json
  4. 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.
  3. Visit the Hosting URL link output from the prior deployment, https://${PROJECT_ID}.firebaseapp.com, in your browser
  4. Visit the Project Console link > Functions > Dashboard > copy the link: https://${REGION}-${PROJECT_ID}.cloudfunctions.net/dialogflowFirebaseFulfillment

Dialogflow Console

  1. Return to the Dialogflow Console > select Fulfillment > Enable Webhook > Set URL to the Function URL from Firebase copied from previous step in the form of: https://${REGION}-${PROJECT_ID}.cloudfunctions.net/dialogflowFirebaseFulfillment > SAVE.
  2. 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.

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.
  • Go to https://<YOUR-FIREBASE-APP>.firebaseapp.com to save and read your favorite color.

Troubleshooting

  • If running into issues after following the above steps, clear your browser's cache and make sure pop ups are allowed.

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.

googleaudionotes's People

Contributors

ordinarykids avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.