Skip to content

Instantly share code, notes, and snippets.

@julien51 julien51/push.js

Last active Dec 18, 2015
What would you like to do?
var request = require('request');
// app below needs to be a Connect/Express app.
// Subscribing: use to use Superfeedr (works with any feed!)
function subscribe(url, conf, cb) {
var hub = conf.hub;
var params = {
method: 'POST',
uri: hub,
auth: {
'user': 'username',
'pass': 'password',
}, // Only required if you use Superfeedr as your default hub
headers: {
accept: 'application/json'
}, // On required if you use Superfeedr as your default hub and if you want JSON normalization
form: conf.form || {}
params.form['hub.mode'] = 'subscribe';
params.form['hub.topic'] = url;
params.form['hub.verify'] = 'sync'; // Only required if you use Superfeedr as your default hub
params.form['hub.callback'] = base + '/push/' + encodeURIComponent(url);
request(params, function(error, response, body) {
if(response.statusCode === 204) {
console.log('Subscribed to', url);
else if(response.statusCode === 204) {
console.log('Will verify intent subscription to', url);
else {
// Verification of intent. Not required when using
// You probably want to customiaz this to echo the challenge *only if* you really want to subscribe to the
// request.query['hub.topic']. Also, keep track of request.query['hub.lease_seconds'] because it indicates when/if
// you subscription will expire.
app.get('/push/:feed', function(request, response) {
//'/push/:feed', function(request, response) {
// Do something with the body (needs to get it raw)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.