CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Mon, 11 Aug 2025 03:07:46 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20091203074156
location: https://web.archive.org/web/20091203074156/https://github.com/johnboxall/django_webhooks
server-timing: captures_list;dur=1.787549, exclusion.robots;dur=0.081478, exclusion.robots.policy;dur=0.045791, esindex;dur=0.035584, cdx.remote;dur=14.501140, LoadShardBlock;dur=183.393763, PetaboxLoader3.datanode;dur=73.093807, PetaboxLoader3.resolve;dur=56.909543
x-app-server: wwwb-app203
x-ts: 302
x-tr: 243
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app203; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Mon, 11 Aug 2025 03:07:47 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.7.61
x-archive-orig-date: Thu, 03 Dec 2009 07:41:55 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-etag: "19301f4d92ade1793e79bb302dafd896"
x-archive-orig-x-runtime: 127ms
x-archive-orig-content-length: 26584
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Thu, 03 Dec 2009 07:41:56 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 01 Nov 2009 13:35:29 GMT", ; rel="prev memento"; datetime="Sun, 01 Nov 2009 13:35:29 GMT", ; rel="memento"; datetime="Thu, 03 Dec 2009 07:41:56 GMT", ; rel="next memento"; datetime="Sun, 10 Jun 2018 23:26:34 GMT", ; rel="last memento"; datetime="Thu, 20 Oct 2022 18:42:05 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 51_13_20091203030103_crawl101-c/51_13_20091203074018_crawl101.arc.gz
server-timing: captures_list;dur=0.533899, exclusion.robots;dur=0.020025, exclusion.robots.policy;dur=0.008939, esindex;dur=0.010168, cdx.remote;dur=158.586103, LoadShardBlock;dur=191.535413, PetaboxLoader3.datanode;dur=131.182488, PetaboxLoader3.resolve;dur=162.931629, load_resource;dur=224.381872
x-app-server: wwwb-app203
x-ts: 200
x-tr: 629
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
johnboxall's django_webhooks at master - GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Description: | Django WebHooks makes it easy to integrate WebHooks into your Django Project. edit |
Homepage: | edit |
Public Clone URL: |
git://github.com/johnboxall/django_webhooks.git
Give this clone URL to anyone.
git clone git://github.com/johnboxall/django_webhooks.git
|
Your Clone URL: |
Use this clone URL yourself.
git clone git@github.com:johnboxall/django_webhooks.git
|
name | age | message | |
---|---|---|---|
![]() |
README.md | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
![]() |
__init__.py | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
![]() |
bin/ | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
![]() |
hooks.py | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
![]() |
models.py | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
![]() |
tests.py | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
![]() |
views.py | Mon Feb 16 10:10:26 -0800 2009 | Initial import. [johnboxall] |
README.md
Django WebHooks
About
Web Hooks is an open initiative to standardize event notifications between web services by subscribing to URLs.
Django WebHooks makes it easy to integrate WebHooks into your Django Project.
Using Django Webhooks
Download the code from GitHub:
git clone git://github.com/johnboxall/django-webhooks.git webhooks
Edit
settings.py
and addwebhooks
to yourINSTALLED_APPS
:# settings.py ... INSTALLED_APPS = (... 'webhooks', ...)
Register webhooks for models -
admin.py
is a good place:# admin.py from webhooks import webhooks webhooks.register(MyModel, ["fields", "to", "serialize"])
Create Listeners for the webhook. For example to create a Listener that will be messaged whenever a
User
instance withusername="john"
is saved:from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from webhooks.models import Listener user_type = ContentType.objects.get(app_label="auth", model="user") john = User.objects.get(username="john") Listener.create(obj_type=user_type, obj_property="username", obj_value="john", url="https://where.john/is/listening/", owner=john)
Profit.
Creating a Webhook Endpoint
Django:
# views.py import simplejson def listener(request): json = request.raw_post_data webhook = simplejson.loads(json)
PHP:
<?php // https://ca3.php.net/manual/en/reserved.variables.httprawpostdata.php // https://ca3.php.net/manual/en/wrappers.php.php $json = file_get_contents('php://input'); // https://ca3.php.net/manual/en/function.json-decode.php var_dump(json_decode($json, true)); ?>
Details
- HTTP POST request / raw_post_data
- Creating a listener ...
- ...
ToDo
- Code in
webhooks.models.Message
should be moved intowebhooks.helpers
so it can be subclassed / overridden more easily. - Add HMAC authorization headers to all Webhooks messages ([https://code.google.com/p/support/wiki/PostCommitWebHooks](see Google Code implementation)
- Add verify view for (think PayPal IPN)
Resources
- https://blog.webhooks.org/
- https://blogrium.com/2006/12/27/automator-for-the-web/
- https://blogrium.com/2006/11/27/lets-make-seeking-bliss-easier/
- https://blogrium.com/?p=70
- https://www.slideshare.net/progrium/web-hooks Web-Hooks by blogrium.com / superhappydevhouse
- https://groups.google.com/group/webhooks/ webhooks google group
- https://code.google.com/p/support/wiki/PostCommitWebHooks
- https://www.slideshare.net/progrium/web-hooks-and-the-programmable-world-of-tomorrow-presentation
- https://github.com/guides/post-receive-hooks
This feature is coming soon. Sit tight!