Skip to content

Updating this to work with newer google-auth-lib and @grpc/grpc-js

License

Notifications You must be signed in to change notification settings

Kate6/assistant-sdk-nodejs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Assistant SDK for devices - Node.js

This fork

I've updated the sample code in google-assistant-grpc to use the newest google-auth-lib and to use @grpc/proto-loader and @grpc/grpc-js instead of the deprecated grpc library

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.

About

Updating this to work with newer google-auth-lib and @grpc/grpc-js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%