kijiji-fb-bot

A bot that sends Facebook messages with new Kijiji ads

Usage no npm install needed!

<script type="module">
  import kijijiFbBot from 'https://cdn.skypack.dev/kijiji-fb-bot';
</script>

README

kijiji-fb-bot

A node.js bot that scrapes recent Kijiji ads and sends them in a Facebook message.

Features

  • Automatically receive new Kijiji ads matching given search criteria
  • Send commands to the bot to manually retrieve ads

Dependencies

Installation

npm install kijiji-fb-bot

Configuration

You can configure the bot by placing the following JSON files in a configuration directory:

  • botprops.json - Contains basic bot properties:
 {
    "name": "bot name (used for chat commands)",
    "chatId": <chat id to send automatic updates>,
    "scrapeInterval": <frequency of scrapes (in ms)>,
    "remoteAdmin": <1 or 0>
 }
  • facebook.json - Contains the Facebook credentials the bot will use to log in:
{
    "email": "Facebook account email",
    "password": "Facebook account password"
}

Documentation

init(configDir, callback)

Will call callback with a function to stop the bot.

Arguments
  • configDir - The directory containing the bot's configuration files.

  • callback(err, stop) - A callback called after the bot has been started. If there is an error, err will not be null. If everything was successful, stop will be a function that, when called, sets the bot to stop after the next chat message is received. It cannot be stopped immediately as a result of a limitation of the facebook-chat-api module.

Example usage
var bot = require("kijiji-fb-bot");

bot("json/botconfig", function(err, stop) {
    //The bot will work its magic
    //Call stop() when done
});

Chat commands

The bot can be interacted with by sending it Facebook messages. Each command must be prefixed with the bot name specified in botprops.json. The following commands are supported:

  • list - The bot will reply with a list of the last scraped ads.
  • scrape - The bot will scrape and reply with ads posted to Kijiji since the last scrape.
  • info - The bot will reply with information about its state.
  • help - The bot will reply with information about its chat commands.

Additionally, if remoteAdmin is set to 1 in botprops.json, the following chat commands will be available:

  • botprop [prop] [val] - Will set the value of property prop specified in botprops.json to val.
  • adpref [pref] [val] - Will set the value of preference pref specified in adprefs.json to val.
  • searchparam [param] [val] - Will set the value of parameter param specified in searchparams.json to val.

If the val argument is omitted for any of these commands, the bot will reply with the current value.

Example usage

[BOTNAME] [COMMAND] [ARGS]