Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/actions-on-google-labs/interactive-canvas-editor-nodejs
https://github.com/actions-on-google-labs/interactive-canvas-editor-nodejs
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/actions-on-google-labs/interactive-canvas-editor-nodejs
- Owner: actions-on-google-labs
- License: apache-2.0
- Archived: true
- Created: 2019-12-19T18:36:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2019-12-19T18:52:37.000Z (almost 5 years ago)
- Last Synced: 2024-04-27T05:32:55.429Z (7 months ago)
- Language: JavaScript
- Size: 133 KB
- Stars: 27
- Watchers: 4
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-actions-on-google - Interactive Canvas editor - Editor to create a web app for Interactive Canvas that is immediately loaded onto a smart display device. This allows for quick prototyping of web apps for Interactive Canvas. (Open source code)
README
# Actions on Google: Interactive Canvas editor
**NOTE**
This is an experimental project and will receive minimal maintenance. Only bugs for security issues will be accepted. No feature requests will be accepted. Pull requests will be acknowledged and reviewed as soon as possible. There is no associated SLAs.
Some of the projects in this experimental org might mature to a more stable state and move into the main [Actions on Google GitHub org](https://github.com/actions-on-google).
---
![Interactive Canvas editor](/public/images/screenshot.png?raw=true "Interactive Canvas editor")You can use this editor to create a web app for [Interactive Canvas](https://developers.google.com/actions/canvas/) that is immediately loaded onto a smart display device. This allows for quick prototyping of web apps for Interactive Canvas.
This project uses the [Node.js client library](https://github.com/actions-on-google/actions-on-google-nodejs) and is deployed on [Cloud Functions for Firebase](https://firebase.google.com/docs/functions/), [Firebase Hosting](https://firebase.google.com/docs/hosting) and [Firestore](https://firebase.google.com/docs/firestore).
## Background
The typical workflow for developing an Interacive Canvas web app would require a developer to host the web app on a public HTTPS endpoint. To update the web app would require changes to be pushed to the hosting server which typically add delays to view any changes on a device.
This project provides basic editors for HTML, CSS and JavaScript which are then combined to form the HTML for the Interacive Canvas web app. Any changes to the HTML code is persisted in a Firestore database.
On the device a special wrapper Interactive Canvas action is loaded which contains an iframe which is dynamically updated with the HTML obtained from Firestore. All Interactive Canvas API's are proxied to the iframe so that the code from the editor behaves exactly like it is the main web app loaded in an Interactive Canvas Action.
To link the editor with the Interactive Canvas instance a simple code is generated on the device and which then has to be entered in the editor.
## Setup Instructions
### Prerequisites
1. Node.js and NPM
- We recommend installing using [nvm for Linux/Mac](https://github.com/creationix/nvm) and [nvm-windows for Windows](https://github.com/coreybutler/nvm-windows)
2. Install the [Firebase CLI](https://developers.google.com/actions/dialogflow/deploy-fulfillment)
- We recommend using MAJOR version `7` with `7.1.1` or above, `npm install -g firebase-tools@^7.1.1`
- Run `firebase login` with your Google account### Configuration
#### Actions Console
1. From the [Actions on Google Console](https://console.actions.google.com/), add a new project > **Create Project** > under **More options** > **Conversational**
1. Click **Deploy** in the top menu. Then, click **Additional information**.
1. Under **Category**, select **Games & fun**
1. Under **Interactive Canvas** _Do your Actions use Interactive Canvas?_, check **Yes**
1. Click **Develop** in the top menu. Then, click **Actions** > **Add Your First Action** > **Play game** > **GET STARTED IN DIALOGFLOW** (this will bring you to the Dialogflow console) > Select language and time zone > **CREATE**.
1. 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](https://console.firebase.google.com), find and select your Actions on Google Project ID
1. 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`
1. Run `firebase deploy --project {PROJECT_ID}` to deploy the function and hosting
- To find your **Project ID**: In [Dialogflow console](https://console.dialogflow.com/) under **Settings** ⚙ > **General** tab > **Project ID**.#### Dialogflow Console
1. Return to the [Dialogflow Console](https://console.dialogflow.com) > select **Fulfillment** > **Enable** Webhook > Set **URL** to the **Function URL** that was returned after the deploy command > **SAVE**.
```
https://${REGION}-${PROJECT_ID}.cloudfunctions.net/dialogflowFirebaseFulfillment
```
1. 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 Interactive Canvas [supported devices](https://developers.google.com/actions/interactivecanvas/#supported_devices) 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.
- In the simulator, you have to click on the canvas iframe to enable audio playback of the game sounds.## References & Issues
- Questions? Go to [StackOverflow](https://stackoverflow.com/questions/tagged/actions-on-google), [Assistant Developer Community on Reddit](https://www.reddit.com/r/GoogleAssistantDev/) or [Support](https://developers.google.com/actions/support/).
- For bugs, please report an issue on Github.
- Actions on Google [Interactive Canvas Documentation](https://developers.google.com/actions/canvas/)
- Actions on Google [Documentation](https://developers.google.com/actions/extending-the-assistant)
- Actions on Google [Codelabs](https://codelabs.developers.google.com/?cat=Assistant)
- [Webhook Boilerplate Template](https://github.com/actions-on-google/dialogflow-webhook-boilerplate-nodejs) for Actions on Google## Make Contributions
Please read and follow the steps in the [CONTRIBUTING.md](CONTRIBUTING.md).
## License
See [LICENSE](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](https://developers.google.com/terms/).