Skip to main content

Ampalibe is a lightweight Python framework for building Facebook Messenger bots faster.

Project description

Ampalibe

Video Tutorials · Documentation · Report Bug

Ampalibe is a lightweight Python framework for building Facebook Messenger bots faster. It provides a new concept, it manages webhooks, processes data sent by Facebook and provides API Messenger with advanced functions such as payload management, item length, and more.

Show your support by giving a star 🌟 if this project helped you!

Installation

pip install ampalibe

OR you can install dev version

pip install https://github.com/iTeam-S/Ampalibe/archive/refs/heads/main.zip

if you use mysql as database, you have to install mysql-connector or mysql-connector-python with ampalibe

pip install ampalibe[mysql-connector]

if you use postgresql as database, you have to install psycopg2 with ampalibe

pip install ampalibe[psycopg2]

if you use mongodb as database, you have to install pymongo with ampalibe

pip install ampalibe[pymongo]

Usage

command-line ampalibe is ampalibe.bat for Windows

ampalibe create myproject

OR

$ cd myproject
$ ampalibe init

to run project, just use

ampalibe run

for dev mode with Hot Reload

ampalibe run --dev

Register for an Access Token

You will need to configure a Facebook application, a Facebook page, get the access to the page, link the application to the page, configure a webhook for your app before you can really start using Ampalibe.

This app setup guide should help

OR

See this video on Youtube

Minimal Application

import ampalibe
from ampalibe import Messenger, Model
from ampalibe.messenger import Action

chat = Messenger()
query = Model()

@ampalibe.before_receive()
def before_process(sender_id, **ext):
    #  Mark as seen for each message received
    chat.send_action(sender_id, Action.mark_seen)
    return True

@ampalibe.command('/')
def main(sender_id, cmd, **ext):
    """
    No need to manage weebhooks and data: messages are received directly in a main function
    """
    chat.send_text(sender_id, 'Enter your name')

    # define the function of the next treatment
    query.set_action(sender_id, '/get_name')

@ampalibe.action('/get_name')
def get_name(sender_id, cmd, **ext):
    query.set_action(sender_id, None)  #  clear current action
    chat.send_text(sender_id, f'Hello {cmd}')  #  greeting with name enter by user

Documentation

Other resource

Deployment

Using container

Go to our dir project and run

$ docker run -d -v "${PWD}:/usr/src/app" -p 4555:4555 ghcr.io/iteam-s/ampalibe

Using heroku container

  • Go to heroku docs for docker deploys

  • Change your Dockerfile like this

FROM ghcr.io/iteam-s/ampalibe

ADD . /usr/src/app/

# RUN pip install --no-cache-dir -r requirements.txt

CMD ampalibe -p $PORT run
  • Customize your Dockerfile if necessary

Using heroku python

Other plateform ?

Maybe just run ampalibe run in the right directory? or specify port if needed ampalibe -p 1774 run

About

Ampalibe is a word of Malagasy origin designating the fruit jackfruit.

We have made a promise to

  • keep it light
  • make it easy to use
  • do it quickly to develop

Contributors

Image des contributeurs GitHub

Community

📌 Extension

📌 Module

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ampalibe-1.2.0.1a0.tar.gz (29.6 kB view hashes)

Uploaded Source

Built Distribution

ampalibe-1.2.0.1a0-py3-none-any.whl (30.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page