If you have an app that involves letting users enter content of any kind, regardless if it's chat, discussion boards, or a social site, you want to have the ability to filter content to make sure it is appropriate.
Sift Ninja provides a handy API that does just that, and combined with Flybase, you can offer real-time content checking before posting it anywhere.
To get started, you'll need two things:
- A Sift Ninja account, sign up here if you don't already have one.
- A Flybase account, sign up here if you don't already have one.
Setting up Sift Ninja
When you set up your Sift Ninja account, you'll be asked to create a custom channel, name it whatever you want. This will then give you a unique URL as well as your API key.
Setting up Flybase
Inside your Flybase account, create an app called
siftninja, you'll want that and your API key.
Setting up our Node app.
Our node app is going to be really simple, from your terminal type:
$ npm init $ npm install --save finalhandler flybase siftninja serve-static
This will install the node modules we need for our app.
Create a file called
index.js, which will contain a Flybase listener to check content entered on our chat page:
This will create a custom event listener called
check_content, which will check the
message for any inapproriate text and return the results back to our frontend app.
response was true, then the text was ok, and we save it to our Flybase app, and thus let it appear in the chat window.
response was false, then there was a problem with the text and we notify the user who entered it and do not save it. We'll pass a unique session id for the user, which lets us respond to that user without notifying all other users.
Create a folder called
public and inside that folder, create a file called
We've kept this app simple, when the user hits the
enter key on their text it sends an event to our backend via Flybase and then listens for a reply.
We assign our chat users a unique session ID that follows them for the life of that browser session, this then lets us add a unique listening event called
results_<SESSIONKEY> that we can use to pass any issues we've found directly back to that user.
You can see the original repo here.
Feel free to expand on what this can do, as Sift Ninja is a handy tool to have in your arsenal and the guys behind it are solid in this area, and combining it with Flybase's real-time events lets you check content entered in real-time before saving it to your database or forwarding it to other users.