Create webhooks and allow users to assign URLs to them
This package allows web apps to provide third-party integration via webhooks. You as the developer can trigger a webhook by name, and provide an interface whereby the user can manage the URL to post the webhook's data to.
This is part of a toolset called Bambu Tools. It's being moved from a namespace of bambu
to its own
'root-level' package, along with all the other tools in the set. If you're upgrading from a version prior
to 2.0, please make sure to update your code to use bambu_webhooks
rather than bambu.webhooks
.
Install the package via Pip:
pip install bambu-webhooks
Add it to your INSTALLED_APPS
list:
INSTALLED_APPS = (
...
'bambu_webhooks'
)
Add bambu_webhooks.urls
to your URLconf:
urlpatterns = patterns('',
...
url(r'^webhooks/', include('bambu_webhooks.urls')),
)
Run manage.py syncdb
or manage.py migrate
to setup the database tables.
Register a webhook within your models.py file.
from hashlib import md5
import bambu_webhooks
bambu_webhooks.site.register('webhook_name_',
description = 'A description of the webhook'
)
In the save()
method for your model, trigger any webhooks that have receivers attached, thus posting
the data to the user's specified URL.
def save(self, *args, **kwargs):
...
bambu_webhooks.send('webhook_name_', self.author,
{
'id': self.pk,
'name': self.name
},
md5('testproject.myapp.mymodel:%d' % self.pk).hexdigest()
)
This package, among most in the Bambu toolset is designed to work with Bambu Bootstrap, a collection of flexible templates designed for web apps based on the Twitter Bootstrap framework. It's not a package requirement, but it'll mean the template structure and the context variables exposed by the view makes a little more sense.
- Allow webhooks to be categorised and/or filtered
- Prepare for internationalisation
- Write tests
Full documentation can be found at ReadTheDocs.
Find me on Twitter (@iamsteadman) or visit my blog.