nexmo-stitch v3.0.1
Nexmo Stitch SDK for JavaScript
Quick Steps
- Create your Nexmo account
- Install
nexmo-clitool - Create a new application
- Generate a JWT token
- Register your new user to the Conversation Service
- Generate a JWT token (with sub=
[username])
Setup
$ npm install nexmo-stitchcreate 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.keyget 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/usersinclude the script in your web page
<script src="node_modules/nexmo-stitch/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 installbuild
$ npm startit will build interracially your code.
or
$ npm run buildgenerate docs
$ npm run docsit will generate your code in dist/conversationClient
Run the tests
you can run the test with
$ npm run test7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
