node-gitter
v2.1.0
Published
Gitter client
Downloads
35
Keywords
Readme
node-gitter
Node.js client for the Gitter API. For more info visit: Gitter Developers website.
If you have any questions, click on the badge to join the conversation.
Installation
$ npm install --save node-gitter
Basics
var Gitter = require('node-gitter');
var gitter = new Gitter(token);
gitter.currentUser()
.then(function(user) {
console.log('You are logged in as:', user.username);
});
Authentication
It's mandatory to provide a valid Gitter OAuth token in order to use the client. You can obtain one from https://developer.gitter.im/apps.
Promises or Callbacks
The client implements both. The following code is equivalent:
Using promises:
gitter.rooms.join('gitterhq/sandbox')
.then(function(room) {
console.log('Joined room: ', room.name);
})
.fail(function(err) {
console.log('Not possible to join the room: ', err);
})
Using node-style callbacks:
gitter.rooms.join('gitterhq/sandbox', function(err, room) {
if (err) {
console.log('Not possible to join the room: ', err);
return;
}
console.log('Joined room: ', room.name);
});
Users
Current user
gitter.currentUser()
Current user rooms, repos, and orgs
gitter.currentUser()
.then(function(user) {
user.rooms()
user.repos()
user.orgs()
})
Find a user
gitter.users.find(userId)
Rooms
Join a room
gitter.rooms.join('gitterhq/sandbox')
Post a message to a room
gitter.rooms.join('gitterhq/sandbox')
.then(function(room) {
room.send('Hello world!');
});
Listen for chatMessages, Events or Users in a room
gitter.rooms.find(roomId).then(function(room) {
var events = room.streaming().chatMessages();
// The 'snapshot' event is emitted once, with the last messages in the room
events.on('snapshot', function(snapshot) {
console.log(snapshot.length + ' messages in the snapshot');
});
// The 'chatMessages' event is emitted on each new message
events.on('chatMessages', function(message) {
console.log('A message was ' + message.operation);
console.log('Text: ', message.model.text);
});
});
Room users and messages
gitter.rooms.find(roomId)
.then(function(room) {
room.users()
room.chatMessages()
});
Leave a room
gitter.rooms.find(roomId)
.then(function(room) {
gitter.currentUser()
.then(function(currentUser) {
return room.removeUser(currentUser.id);
});
});
License
BSD