# @broid/google-assistant

> Convert Google Assistant messages into Activity Streams 2 with Broid Integration

Latest version **2.1.0** (published 2017-09-17) · AGPL-3.0+ license · 0 weekly downloads

## Install

```sh
npm install @broid/google-assistant
pnpm add @broid/google-assistant
yarn add @broid/google-assistant
bun add @broid/google-assistant
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.1.0 |
| Published | 2017-09-17 |
| First published | 2017-03-25 |
| Weekly downloads | 0 |
| License | AGPL-3.0+ |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0.0 |
| Dependencies | 9 |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 740 |
| Author | Broid Team |
| Maintainers | broidy, dustinblackman, killix |
| Keywords | google assistant, broid, activity, strams, activity streams 2, messaging, chat, bot |

## Links

- npm: https://www.npmjs.com/package/@broid/google-assistant
- Repository: https://github.com/broidHQ/integrations
- Homepage: https://github.com/broidHQ/integrations/tree/master/broid-google-assistant#readme
- Issues: https://github.com/broidHQ/integrations/issues
- npm.io page: https://npm.io/package/@broid/google-assistant

## Dependencies (9)

- [rxjs](https://npm.io/package/rxjs.md) ^5.0.2
- [uuid](https://npm.io/package/uuid.md) ^3.1.0
- [ramda](https://npm.io/package/ramda.md) ^0.23.0
- [express](https://npm.io/package/express.md) ^4.14.0
- [bluebird](https://npm.io/package/bluebird.md) ^3.4.7
- [body-parser](https://npm.io/package/body-parser.md) ^1.16.0
- [@broid/utils](https://npm.io/package/@broid/utils.md) ^1.1.1
- [@broid/schemas](https://npm.io/package/@broid/schemas.md) ^1.0.1
- [actions-on-google](https://npm.io/package/actions-on-google.md) ^1.0.5

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 2.1.0 (latest) — 2017-09-17
- 2.0.1 — 2017-07-10
- 2.0.0 — 2017-04-13
- 1.0.0 — 2017-03-25

## README

[npm]: https://img.shields.io/badge/npm-broid-green.svg?style=flat
[npm-url]: https://www.npmjs.com/org/broid

[node]: https://img.shields.io/node/v/@broid/google-assistant.svg
[node-url]: https://nodejs.org

[deps]: https://img.shields.io/badge/dependencies-checked-green.svg?style=flat
[deps-url]: #integrations

[tests]: https://img.shields.io/travis/broidHQ/integrations/master.svg
[tests-url]: https://travis-ci.org/broidHQ/integrations

[bithound]: https://img.shields.io/bithound/code/github/broidHQ/integrations.svg
[bithound-url]: https://www.bithound.io/github/broidHQ/integrations

[bithoundscore]: https://www.bithound.io/github/broidHQ/integrations/badges/score.svg
[bithoundscore-url]: https://www.bithound.io/github/broidHQ/integrations

[nsp-checked]: https://img.shields.io/badge/nsp-checked-green.svg?style=flat
[nsp-checked-url]: https://nodesecurity.io

[![npm][npm]][npm-url]
[![node][node]][node-url]
[![deps][deps]][deps-url]
[![tests][tests]][tests-url]
[![bithound][bithound]][bithound-url]
[![bithoundscore][bithoundscore]][bithoundscore-url]
[![nsp-checked][nsp-checked]][nsp-checked-url]

# 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](https://badges.gitter.im/broidHQ/broid.svg)](https://t.broid.ai/c/Blwjlw?utm_source=github&utm_medium=readme&utm_campaign=top&link=gitter)

## Message types supported

| Simple | Image | Video | Buttons | Location | Phone number |
|:------:|:-----:|:-----:|:-------:|:--------:|:------------:|
|   ✅    |       |       |         |          |              |

_Image, Video, Buttons, Location, Phone number are platform limitations._

## Getting started

### Install

```bash
npm install --save @broid/google-assistant
```

### Connect to Google Assistant

```javascript
const BroidGoogleAssistant = require('@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.

```javascript
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

```javascript
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](https://github.com/broidHQ/integrations/tree/master/broid-schemas).

```javascript
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](https://github.com/broidHQ/integrations/tree/master/broid-schemas).

## Contributing to Broid

See [CONTRIBUTE.md](../CONTRIBUTE.md)

## Copyright & License

Copyright (c) 2016-2017 Broid.ai

This project is licensed under the AGPL 3, which can be
[found here](https://www.gnu.org/licenses/agpl-3.0.en.html).

---
_Source: https://npm.io/package/@broid/google-assistant · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
