Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jlmadurga/permabots
Connect instant messaging bots to your APIs.
https://github.com/jlmadurga/permabots
bots chatbot django facebook-messenger-bot kikbot python telegram
Last synced: 21 days ago
JSON representation
Connect instant messaging bots to your APIs.
- Host: GitHub
- URL: https://github.com/jlmadurga/permabots
- Owner: jlmadurga
- License: bsd-3-clause
- Created: 2016-03-08T22:15:49.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-26T20:30:20.000Z (about 2 years ago)
- Last Synced: 2024-12-19T20:39:40.110Z (22 days ago)
- Topics: bots, chatbot, django, facebook-messenger-bot, kikbot, python, telegram
- Language: Python
- Homepage:
- Size: 2.56 MB
- Stars: 82
- Watchers: 2
- Forks: 24
- Open Issues: 16
-
Metadata Files:
- Readme: README.rst
- Changelog: HISTORY.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
README
=============================
Permabots
=============================.. image:: https://github.com/jlmadurga/permabots/raw/master/docs/images/logos/permabots.png
:target: https://github.com/jlmadurga/permabotsCI:
.. image:: https://travis-ci.org/jlmadurga/permabots.svg?branch=master
:target: https://travis-ci.org/jlmadurga/permabots.. image:: https://coveralls.io/repos/github/jlmadurga/permabots/badge.svg?branch=master
:target: https://coveralls.io/github/jlmadurga/permabots?branch=master
.. image:: https://requires.io/github/jlmadurga/permabots/requirements.svg?branch=master
:target: https://requires.io/github/jlmadurga/permabots/requirements/?branch=master
:alt: Requirements Status
PyPI:.. image:: https://img.shields.io/pypi/v/permabots.svg
:target: https://pypi.python.org/pypi/permabotsDocs:
.. image:: https://readthedocs.org/projects/permabots/badge/?version=latest
:target: https://readthedocs.org/projects/permabots/?badge=latest
:alt: Documentation StatusBuild chat bots and connect then to your app APIs.
With Permabots you can build chat bots and with the same configuration use it for several instant messaging providers. Permabots
was born to be a microservice to connect messaging providers to your apps using REST APIs... image:: https://github.com/jlmadurga/permabots/raw/master/docs/images/demo.gif
:target: https://github.com/jlmadurga/permabotsDocumentation
-------------The full documentation is at https://permabots.readthedocs.org.
Features
--------* Telegram, Kik and Facebook Messenger bots
* Message handling definition with regex, as django urls.
* HTTP methods: GET/POST/PUT/DELETE/PATCH
* Text responses and keyboards with Jinja2 templates
* Chat State handling
* Asynchronous processing of messages
* Media messages not supportedQuickstart
----------Install permabots::
pip install permabots
Add ``permabots`` to your ``INSTALLED_APPS``, and run::$ python manage.py migrate permabots
Instant messaging providers uses webhooks to send messages to your bots. Add permabots processing urls to your urlpatterns::url(r'^processing/', include('permabots.urls_processing', namespace="permabots"))
Webhooks are generated with ``django.contrib.sites``. You need it installed and ``SITE_ID`` configured. If you want to generate webhook manually you can do it::MICROBOT_WEBHOOK_DOMAIN = 'https://yourdomain.herokuapp.com'
It is usefull when you don't have ``https`` in your public domain but you have it in your autogenerated domain. i.e. heroku.
Bots are associated to Django Users. You need at least one user, for example admin user.Then you can create all permabots data, Bots, Conversation Handlers, Notitication Hooks,... via Django admin or with REST API (recommended).
Demo
--------------You can check and deploy a Permabots demo https://github.com/jlmadurga/permabots-demo
.. image:: https://www.herokucdn.com/deploy/button.svg
:target: https://heroku.com/deploy?template=https://github.com/jlmadurga/permabots-demo/tree/masterRunning Tests
--------------Does the code actually work?
::
source /bin/activate
(myenv) $ pip install -r requirements/test.txt
(myenv) $ make test
(myenv) $ make test-all