Giter VIP home page Giter VIP logo

ifttt-webhook's Introduction

ifttt-webhook

A webhook middleware for the ifttt.com service

#How To Use

  1. Change your ifttt.com wordpress server to http://ifttt.captnemo.in.
  2. You can use any username/password combination you want. ifttt will accept the authentication irrespective of what details you enter here. These details will be passed along by the webhook as well, so that you may use these as your authentication medium, perhaps.
  3. Create a recipe in ifttt which would post to your "wordpress channel". In the "Body" field, use the webhook url that you want to use.

Connecting to ifttt-webhook

Any username/password combination will be accepted, and passed through to the webhook url. A blank password is considered valid, but ifttt invalidates a blank username.

Screenshot of a channel

Make sure that the url you specify accepts POST requests. (Use requestbin for debugging.) The url is only picked up from the description field, and all other fields are passed through to the webhook url. The post status should ideally be set to "Publish Immediately", but anything else should work as well.

#How It Works ifttt uses wordpress-xmlrpc to communicate with the wordpress blog. We present a fake-xmlrpc interface on the webadress, which causes ifttt to be fooled into thinking of this as a genuine wordpress blog. The only action that ifttt allows for wordpress is posting, which is used for powering webhooks. All the other fields (title, categories) along with the username/password credentials are passed along by the webhook. Do not use the "Create a photo post" action for wordpress, as ifttt manually adds a <img> tag in the description pointing to what url you pass. Its better to pass the url in clear instead (using body field).

#Why There has been a lot of call for a ifttt-webhook. I had asked about it pretty early on, but ifttt has yet to create such a channel. It was fun to build and will allow me to hookup ifttt with things like partychat, github and many other awesome services for which ifttt is yet to build a channel. You can build a postmarkapp.com like email-to-webhook service using ifttt alone. Wordpress seems to be the only channel on ifttt that supports custom domains, and hence can be used as a middleware. The ifttt-webhook also propogates errors on connecting to the webhook back to ifttt. This means that an Internal Server Error will be recognized as an error by ifttt, and reported as such. You won't be getting any debug information from this side (ifttt doesn't show that in logs), so debug on your webhook side by proper logging.

#Payload The following information is passed along by the webhook in the raw body of the post request in json encoded format.

    {
  "user" : "username specified in ifttt",
  "password" : "password specified in ifttt",
  "title" : "title generated for the recipe in ifttt",
  "categories" : ["array","of","categories","passed"]
    }

To get the data from the POST request, you can use any of the following:

    $data = json_decode(file_get_contents('php://input')); //php
    data = JSON.parse(request.body.read) #ruby-sinatra

#Licence Licenced under GPL. Some portions of the code are from wordpress itself. You should probably host this on your own server, instead of using ifttt.captnemoin. I recommend using Heroku for excellent php hosting. (Heroku does supports PHP)

#Custom Use Just clone the git repo to some place, and use that as the wordpress installation location in ifttt.com channel settings.

#Changelog

  • Shifted URL from Tags field to Description(Body) field. (Oct 26 2013)
  • Shifted ifttt.captnemo.in to Heroku (Oct 7 2013)

ifttt-webhook's People

Contributors

captn3m0 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.