Connect your App to Multiple Messaging Channels with the W3C Open standard.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github Update to make travis work Jan 29, 2017
_tools fix(tools): remove duplicate Nov 6, 2017
broid-alexa docs(alexa): add slackin badge Sep 19, 2017
broid-callr docs(callr): add slackin badge Sep 19, 2017
broid-discord docs(discord): add slackin badge Sep 19, 2017
broid-flowdock docs(flowdock): add slackin badge Sep 19, 2017
broid-gitter docs(gitter): add slackin badge Sep 19, 2017
broid-google-assistant docs(google-assistant): add slackin badge Sep 19, 2017
broid-groupme docs(groupme): add slackin badge Sep 19, 2017
broid-irc docs(irc): add slackin badge Sep 19, 2017
broid-kik docs(kik): add slackin badge Sep 19, 2017
broid-line docs(line): add slackin badge Sep 19, 2017
broid-messenger chore(messenger): Bump version to 2.2.0 Sep 29, 2017
broid-ms-teams docs(ms-teams): add slackin badge Sep 19, 2017
broid-nexmo docs(nexmo): add slackin badge Sep 19, 2017
broid-schemas Merge branch 'devel' into feat/schema_document Feb 9, 2018
broid-skype docs(skype): add slackin badge Sep 19, 2017
broid-slack fix(slack): Use the correct behaviour for handle thread Nov 6, 2017
broid-telegram docs(telegram): add slackin badge Sep 19, 2017
broid-twilio docs(twilio): add slackin badge Sep 19, 2017
broid-twitter docs(twitter): add slackin badge Sep 19, 2017
broid-utils bump minor versions Sep 11, 2017
broid-viber docs(viber): add slackin badge Sep 19, 2017
broid-wechat Merge pull request #183 from nibzo1/master Oct 17, 2017
resources update docs Feb 22, 2017
.bithoundrc ci Apr 13, 2017
.codeclimate.yml ci Apr 13, 2017
.dockerignore ci Apr 13, 2017
.gitignore Feat/normalize all (#115) Mar 29, 2017
CONTRIBUTE.md update docs May 14, 2017
LICENCE.md Create LICENCE.md Jan 10, 2017
README.md Updated redirection link to the Broid Schema Oct 5, 2017
wercker.yml fix ci Apr 13, 2017

README.md

Broid

Connect your App to Multiple Messaging Channels in a Single Integration with W3C Open standard.

chat on Discord GitHub stars GitHub watchers Tweet Tweet

One API to Rule Them All

NPM Dependencies Build NPM NPM


⭐️ Introduction ⭐️

Broid Integrations is an open source project released by Broid that allows you to easily converse on all the major communication platforms (messaging & voice) without integrating each API.

It provides a suite of libraries to convert all messaging platforms events to Activity Streams 2 schemas.

TL;DR

  • All events are Observables (RxJS)
  • All functions return a Promise (Bluebird)
  • Highly modular to keep your focus on high level features

💪 Motivation 💪

With billions of daily users Messaging💬 is now the prefered channel of communication but there is a clear lack of open standard for the various APIs.

Each one come with a specfic schema, docs, etc. We want to empower the community to built great things with messaging so we open-sourced our Premium API so that you can avoid the tedious work of integrating new channels and focus on your core product 💡.

🔎 Quick Example 🔎

A quick example showing off listening for new messages on Facebook Messenger and Discord with Observables.

npm i --save @broid/messenger @broid/discord rxjs ramda
const Rx = require("rxjs/Rx");
const BroidDiscord = require("@broid/discord");
const BroidMessenger = require("@broid/messenger");

const clients = {
	discord: new BroidDiscord({token: 'DISCORD_TOKEN'}),
	messenger: new BroidMessenger({token: 'FACEBOOK_TOKEN', tokenSecret: 'FACEBOOK_SECRET'})
};

Rx.Observable.merge(...Object.values(clients).map(client => client.connect()))
	.subscribe({
		next: data => console.log(JSON.stringify(data, null, 2)),
		error: err => console.error(`Something went wrong: ${err.message}`),
	});

Rx.Observable.merge(...Object.values(clients).map(client => client.listen()))
	.subscribe({
		next: message => console.log(JSON.stringify(message, null, 2)),
		error: err => console.error(`Something went wrong: ${err.message}`),
	});

🔌 Get Started 🔌

Here are 2 quick tutorials to get started with broid in under 5 minutes and 30 lines of codes :


📱🔗📱 Integrations 🖥️🔗📱

Broid Integrations support simple, media and rich messages (location, carroussel) and split into multiple libraries. This make Broid flexible and useful to use in your application.

Node packages

Name Status
broid-alexa alexa alexa alexa
broid-callr callr callr callr
broid-discord discord discord discord
broid-flowdock flowdock flowdock flowdock
broid-gitter gitter gitter gitter
broid-google-assistant google-assistant google-assistant google-assistant
broid-groupme groupme groupme groupme
broid-irc irc irc irc
broid-kik kik kik kik
broid-line line line line
broid-messenger messenger messenger messenger
broid-ms-teams ms-teams ms-teams ms-teams
broid-nexmo nexmo nexmo nexmo
broid-skype skype skype skype
broid-slack viber slack slack
broid-telegram telegram telegram telegram
broid-twilio twilio twilio twilio
broid-twitter viber twitter twitter
broid-viber viber viber viber
broid-wechat wechat wechat wechat
broid-messagebird
broid-github
broid-webmessenger

Broid Formats

Broid integrations supports Activity Streams 2.0 and uses broid-schemas package to validate input and output message.

Name Status
broid-schemas schemas schemas schemas

❤️️ Contribute ❤️

See CONTRIBUTE.md.

👮 CLA 👮

To protect the interests of the Broid contributors, Broid, customers and end users we require contributors to sign a Contributors License Agreement (CLA) before we pull the changes into the main repository. Our CLA is simple and straightforward - it requires that the contributions you make to any Broid open source project are properly licensed and that you have the legal authority to make those changes. This helps us significantly reduce future legal risk for everyone involved. It's easy---no faxing or printing required!

You can digitally sign the CLA online. Please indicate your email address in your first pull request so that we can make sure that will locate your CLA. Once you've submitted it, you no longer need to send one for subsequent submissions.

📣 Support Broid 📣

Contribuyentes Contribuyentes Speakers Speakers Speakers

In order to continue providing the community with our open source work, we offer a Public API. Paying users get additionnal features and early access to new integrations:

  • Premium Integrations
    • Message Bird
    • Web Messenger (live chat for website and mobile apps with FB Messenger like features)
    • Github
    • ++ more ++
  • Unlimited Messages & users
  • Secure encryption & Failover system
  • Access to Admin Dashboard
  • Priviledged Technical Support

Only $9.99 per month per active integration

Thanks

Project cross-browser compatibility supported by BrowserStack

Speakers