# broid-nexmo

> Convert Nexmo messages into Activity Streams 2 with Broid Integration

Latest version **1.0.0** (published 2017-02-12) · AGPL-3.0+ license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install broid-nexmo
pnpm add broid-nexmo
yarn add broid-nexmo
bun add broid-nexmo
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2017-02-12 |
| First published | 2017-02-12 |
| Weekly downloads | 0 |
| License | AGPL-3.0+ |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6.0.0 |
| Dependencies | 10 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 740 |
| Author | Broid Team |
| Maintainers | broid |

## Links

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

## Dependencies (10)

- [rxjs](https://npm.io/package/rxjs.md) ^5.0.2
- [nexmo](https://npm.io/package/nexmo.md) ^1.2.0
- [ramda](https://npm.io/package/ramda.md) ^0.23.0
- [moment](https://npm.io/package/moment.md) ^2.17.1
- [express](https://npm.io/package/express.md) ^4.14.0
- [bluebird](https://npm.io/package/bluebird.md) ^3.4.7
- [node-uuid](https://npm.io/package/node-uuid.md) ^1.4.7
- [body-parser](https://npm.io/package/body-parser.md) ^1.16.0
- [broid-utils](https://npm.io/package/broid-utils.md) ^1.0.4
- [broid-schemas](https://npm.io/package/broid-schemas.md) ^1.1.4

## Recent versions

- 1.0.0 (latest) — 2017-02-12

## README

[![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 Nexmo 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 |
|:--------:|:--------:|:------:|:--------:|:---------:|:------------:|
| ✅       | ✅      | ✅     |          |        |              |

_Buttons, Location, Phone number are platform limitations._

_Image, Video are supported as a simple message._

## Getting started

### Install

```bash
npm install --save broid-nexmo
```

### Connect to Nexmo

```javascript
import broidNexmo from 'broid-nexmo'

const nexmo = new broidNexmo({
  username: '<your_sender_number>',
  token: '<your_nexmo_token>',
  tokenSecret: '<your_nexmo_token_secret>',
  http: {
    port: 8080,
    host: "0.0.0.0"
  }
})

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

**Options availables**

| 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 sender phone number |
| token           | string   |            | Your nexmo token         |
| tokenSecret     | string   |            | Your nexmo token secret  |
| http            | object   | `{ "port": 8080, "http": "0.0.0.0" }` | WebServer options (`host`, `port`) |

### Receive a message

```javascript
nexmo.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/broid-schemas).

```javascript
const message_formated = '...'

nexmo.send(message_formated)
  .then(() => console.log("ok"))
  .catch(err => console.error(err))
```

## Examples of messages

### Message received

- A message received from Sally

```json
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "published": 1483677146,
  "type": "Create",
  "generator": {
    "id": "67c9cb10-8a74-42c8-ba55-294d0447cdf9",
    "type": "Service",
    "name": "nexmo"
  },
  "actor": {
    "id": "15146345659",
    "name": "15146345659",
    "type": "Person"
  },
  "target": {
    "id": "12262101490",
    "name": "12262101490",
    "type": "Person"
  },
  "object": {
    "type": "Note",
    "id": "0B0000003186F6EB",
    "content": "Hello world"
  }
}
```

### Send a message

- Send a simple message

```json
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "type": "Create",
  "generator": {
    "id": "f6e92eb6-f69e-4eae-8158-06613461cf3a",
    "type": "Service",
    "name": "nexmo"
  },
  "object": {
    "type": "Note",
    "content": "hello world"
  },
  "to": {
    "id": "15146345659",
    "type": "Person"
  }
}
```

# Contributing to Broid

Broid is an open source project. Broid wouldn't be where it is now without contributions by the community. Please consider forking Broid to improve, enhance or fix issues. If you feel like the community will benefit from your fork, please open a pull request.

And because we want to do the better for you. Help us improving Broid by
sharing your feedback on our [Integrations GitHub Repo](https://github.com/broidhq/integrations) and let's build Broid together!

## Code of Conduct

Make sure that you're read and understand the [Code of Conduct](http://contributor-covenant.org/version/1/2/0/).

## 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).

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

[node]: https://img.shields.io/node/v/broid-nexmo.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

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