Git Product home page Git Product logo

assistant-sdk-nodejs's Introduction

Google Assistant SDK for devices - Node.js

Setup

  1. Create or open a project in the Actions Console
  2. Follow the instructions to register a device model
  3. Download credentials.json
  4. Install the google-oauthlib-tool in a Python 3 virtual environment:
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools
env/bin/pip install --upgrade "google-auth-oauthlib[tool]"
  1. Use the google-oauthlib-tool to generate credentials:
env/bin/google-oauthlib-tool --client-secrets credentials.json \
                             --credentials devicecredentials.json \
                             --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
                             --save
  1. Run cd google-assistant-grpc
  2. Run npm install
  3. Run node googleassistant.js
const GoogleAssistant = require('./googleassistant');
const deviceCredentials = require('./devicecredentials.json');

const CREDENTIALS = {
  client_id: deviceCredentials.client_id,
  client_secret: deviceCredentials.client_secret,
  refresh_token: deviceCredentials.refresh_token,
  type: "authorized_user"
};

const assistant = new GoogleAssistant(CREDENTIALS);

Usage

The GoogleAssistant class has several methods and helpers.

  • .assist(string) - Sends a string request to the Assistant. Returns a promise with the text response or device action if applicable.
  • .setDeviceConfig(modelid, instanceid) - Sets the device model and instance. This will need to be set with the model id you defined in the Actions Console to use device actions.
  • .startConversation([initialPrompt]) - Starts a conversation with "my test app". Returns a promise with the text response.
  • .startConversationWith(appName, [initialPrompt]) - Starts a conversation with an Assistant app. Returns a promise with the text response.
  • .endConversation() - Ends a conversation with an Assistant app. Returns a promise.
  • .setLocale(locale) - Changes the Assistant locale, in the format en-US.
assistant.assist('what time is it')
  .then(({ text }) => {
    console.log(text); // Will log "It's 12:30"
  });

You can chain together several requests and responses with Promises, as shown below.

assistant.assist('what is the weather')
  .then(({ text }) => {
    console.log(text);
    return assistant.assist('what about the weather tomorrow')
  })
  .then(({ text }) => {
    console.log(text);
  });

License

See LICENSE.

assistant-sdk-nodejs's People

Contributors

fleker avatar manavm1990 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.