Wondering what’s next for npm?Check out our public roadmap! »

    @broid/nexmo

    2.1.0 • Public • Published

    npm node deps tests bithound bithoundscore nsp-checked

    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

    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

    npm install --save @broid/nexmo

    Connect to Nexmo

    const BroidNexmo = require('@broid/nexmo');
     
    const nexmo = new BroidNexmo({
      username: '<your_sender_number>',
      token: '<your_nexmo_token>',
      tokenSecret: '<your_nexmo_token_secret>',
      http: {
        host: '127.0.0.1',
        port: 8080
      }
    });
     
    nexmo.connect()
      .subscribe({
        next: data => console.log(data),
        error: err => console.error(`Something went wrong: ${err.message}`),
        complete: () => console.log('complete'),
      });

    Nexmo can also be used with your existing express setup.

    const BroidNexmo = require('broid-nexmo');
    const express = require("express");
     
    const nexmo  = new BroidNexmo({
      username: '<your_sender_number>',
      token: '<your_nexmo_token>',
      tokenSecret: '<your_nexmo_token_secret>',
    });
     
    const app = express();
    app.use("/nexmo", nexmo.getRouter());
     
    nexmo.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 sender phone number
    token string Your nexmo token
    tokenSecret string Your nexmo token secret
    http object WebServer options (host, port)

    Receive a message

    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.

    const formatted_message = {
      "@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"
      }
    };
     
    nexmo.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 & License

    Copyright (c) 2016-2017 Broid.ai

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

    Install

    npm i @broid/nexmo

    DownloadsWeekly Downloads

    5

    Version

    2.1.0

    License

    AGPL-3.0+

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar