Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

nexmo-conversation

Package Overview
Dependencies
Maintainers
6
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nexmo-conversation

Nexmo Conversation SDK for JavaScript

  • 0.1.21
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
11
increased by175%
Maintainers
6
Weekly downloads
 
Created
Source

Deprecated (Moved to nexmo-stitch)

Please npm install nexmo-stitch instead

Conversation SDK for JavaScript

Quick Steps

Setup

$ npm install nexmo-conversation

create a nexmo application using the nexmo-cli

$ nexmo app:create "Application name" --type rtc --keyfile private.key
>Application created: xxxxxxxx-xxxx-xxxx-xxxx-xxxxsxxxxxxx
>Private Key saved to: private.key

get a token to create a user:

$ nexmo jwt:generate private.key application_id=[application_id]

create a user in your app

 $ curl -X POST -H 'Authorization: Bearer [JWT]' -H 'Content-Type:application/json' -d '{"name":"[username]"}' https://api.nexmo.com/beta/users

include the script in your web page

<script src="node_modules/nexmo-conversation/dist/conversationClient.js"></script>

get a user's token

$ nexmo jwt:generate private.key application_id=[application_id] sub=[username]

Usage

Create an instance and login

var rtc = new ConversationClient({debug:false});
// var token = request login token as above, with sub=<username>
rtc.login(token).then(
    function(application){
        // use the application object to manage the conversations
        // access the available conversations
        console.log(application.conversations);
    });

Create a new Conversation

var conversationData = {
    display_name:'Nexmo Conversation'
    };
application.newConversation(conversationData).then(
    function(conversation) {
        // join the created conversation
        conversation.join().then(
            function(member) {
                console.log("Joined as " + member.user.name);
            });
    }).catch(function(error) {
    console.log(error);
});

Get a conversation you are a member of

application.getConversation(conversation_id).then(
    function(conversation) {
         // console.log(conversation);
        });

Set up Text listener for incoming Text Events

conversation.on("text", function(sender, textEvent){
    if (textEvent.cid === conversation.id){
        // if (rtc.isVisible) { textEvent.seen(); }
        console.log("message received:", textEvent, sender);
    }
});

Sending a Text Event

conversation.sendText("Hi Nexmo").then(function(){
        console.log('message was sent');
    }).catch(function(error){
        console.log('error sending the message', error);
    });

Login Create a conversation, join it, send a message and listen for incoming messages

var rtc = new ConversationClient({debug:false});
// var token = request login token as above, with sub=<username>
rtc.login(token).then(
    function(application){
        // access the available conversations
        console.log(application.conversations);
        // you might already have conversations under `application.conversations[]` to get,
        // or join (if application.conversations[xxx].me.state === "joined" || "invited" respectively)

        application.newConversation().then( //not providing a name, the service will assign a random one for you
            function(conversation) {
                // join the created conversation
                // you can also find your user_id under rtc.application.me (as application === rtc.application)
                conversation.join().then(
                    function(member) {
                        console.log("Joined as " + member.user.name); //member.id is your member's id
                    });

                // listen for incoming text messages
                conversation.on("text", function(sender, textEvent){
                        // manage seen indication
                        // if (rtc.isVisible) { textEvent.seen(); }
                        console.log("message received:", textEvent, sender);
                });

                // send a text event to the conversation
                conversation.sendText("Hi Nexmo").then(
                    function(){
                        console.log('message was sent');
                    }).catch(function(error){
                        console.log('error sending the message', error);
                });
            }).catch(function(error) {
            console.log(error);
        });
    });

The main objects here are application and conversation you can use them to extend the use case. E.g. by inviting a second user to a conversation that you are a member (have joined). The second instance should see the conversation listed, and the member(or me).state as "invited" When both instances have attached listener to "text" events of a conversation they have both joined, you should be able to send/receive text events in that conversation.

Build

If you want to contribute:

Install SDK

clone this repo and enter in it's directory

$ npm install

build

$ npm start

it will build interracially your code.

or

$ npm run build

generate docs

$ npm run docs

it will generate your code in dist/conversationClient

Run the tests

you can run the test with

$ npm run test

NEXMO

Keywords

FAQs

Package last updated on 03 Apr 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc