DBL-API
Setup
Installation
npm i dbl-api
Getting an API Token
Once signed into DBL, head over to https://discordbots.org/api/docs#mybots and get your API key for your bot.
Accepting WebHook Requests
The main purpose for this library is to support DBL's new webhook feature.
To activate the webhook, navigate to the edit section of your bot and set the webhook URL to something that points to your bot's server. This could even be the bot's IP.
First, you obviously need to instantiate the API client with the port
option. By default, the path is /
, but you should make this some random string so that users will not be able to post random data if they happen to find the bot's port. Obviously, you'd need to match the path with whatever is on your bot. Make sure that the port is port forwarded (it usually is on most hosts).
const DiscordBotListAPI = require('dbl-api');
const api = new DiscordBotListAPI({ port: 8080, path: '/some_insanely_secret_path' });
The server will now listen on port 8080 and accept POST requests on /some_insanely_secret_path
. The API uses the EventEmitter so now you can do
api.on('upvote', (user, bot) => console.log(`Upvote by ${user} for bot ${bot}`));
api.on('unvote', (user, bot) => console.log(`Unvote by ${user} for bot ${bot}`));
If you're already using express, you can do the following:
const express = require('express');
const app = express();
const DiscordBotListAPI = require('dbl-api');
const api = new DiscordBotListAPI();
app.post('/some_insanely_secret_path', api.handler);
app.listen(8080);
And then use the same listeners
api.on('upvote', (user, bot) => console.log(`Upvote by ${user} for bot ${bot}`));
api.on('unvote', (user, bot) => console.log(`Unvote by ${user} for bot ${bot}`));
If you're stuck, feel free to ask for help on my Discord Server.