Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@sava.team/broid-google-assistant

xakep-sava6AGPL-3.0+2.1.3

Convert Google Assistant messages into Activity Streams 2 with Broid Integration

google assistant, broid, sava, activity, strams, activity streams 2, messaging, chat, bot

readme

npm node deps tests nsp-checked

Build

Broid Google Assistant Integration

Broid Integrations is an open source project providing a suite of Activity Streams 2 libraries for unified communications among a vast number of communication platforms.

Connect your App to Multiple Messaging Channels with One OpenSource Language.

gitter site

Message types supported

Simple Image Video Buttons Location Phone number
| |

Image, Video, Buttons, Location, Phone number are platform limitations.

Getting started

Install

npm install --save @sava.team/broid-google-assistant

Connect to Google Assistant

const BroidGoogleAssistant = require('@sava.team/broid-google-assistant');

const googleAssistant = new BroidGoogleAssistant({
  username: '<your_action_name_here>',
  http: {
    port: 8080,
    host: "0.0.0.0"
  }
});

googleAssistant.connect()
  .subscribe({
    next: data => console.log(data),
    error: err => console.error(`Something went wrong: ${err.message}`),
    complete: () => console.log('complete'),
  });

Google Assitant can also be used with your existing express setup.

const BroidGoogleAssistant = require('broid-google-assistant');
const express = require("express");

const googleAssistant = new BroidGoogleAssistant({
  username: '<your_action_name_here>',
});

const app = express();
app.use("/googleAssistant", googleAssistant.getRouter());

googleAssistant.connect()
  .subscribe({
    next: data => console.log(data),
    error: err => console.error(`Something went wrong: ${err.message}`),
    complete: () => console.log('complete'),
  });

app.listen(8080);

Options available

name Type default Description
serviceID string random Arbitrary identifier of the running instance
logLevel string info Can be : fatal, error, warn, info, debug, trace
username string | Your action name here
http object { "port": 8080, "http": "0.0.0.0" } WebServer options (host, port)

Receive a message

googleAssistant.listen()
  .subscribe({
    next: data => console.log(`Received message: ${data}`),
    error: err => console.error(`Something went wrong: ${err.message}`),
    complete: () => console.log('complete'),
  });

Post a message

To send a message, the format should use the broid-schemas.

const formatted_message = {
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "generator": {
    "id": "f6e92eb6-f69e-4eae-8158-06613461cf3a",
    "type": "Service",
    "name": "google-assistant"
  },
  "object": {
    "type": "Note",
    "content": "What is the weather like tomorrow?"
  },
  "to": {
    "id": "IL12J7nWa/2zothSEg46DsY0q7o/H9FUis/YGdp64te=",
    "type": "Person"
  }
};

googleAssistant.send(formatted_message)
  .then(() => console.log("ok"))
  .catch(err => console.error(err));

Examples of messages

You can find examples of sent and received messages at Broid-Schemas.

Contributing to Broid

See CONTRIBUTE.md

Copyright (c) 2020 SaVa.Team

This project is licensed under the AGPL 3, which can be found here.