<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1930213017396645687</id><updated>2012-03-20T02:03:49.525-06:00</updated><category term='facebook'/><category term='google maps'/><category term='truism'/><category term='defaction'/><category term='errorstack'/><category term='statcounter'/><category term='YQL'/><category term='firebug'/><category term='brightkite'/><category term='events'/><category term='linkedin'/><category term='edoism'/><category term='seo'/><category term='crud'/><category term='webhooks'/><category term='jquery'/><category term='iphone'/><category term='kynetx'/><category term='annotation'/><category term='css'/><category term='geolocation'/><category term='push'/><category term='aculis'/><category term='XPath'/><category term='twilio'/><category term='online identity'/><category term='twitter'/><category term='bigohoo'/><category term='oauth'/><category term='social media'/><category term='blogger template'/><category term='webapp'/><category term='JSON'/><category term='widget'/><category term='foursquare'/><category term='safari'/><title type='text'>edoism</title><subtitle type='html'>truism of ed orcutt</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://edoism.orcutt.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1930213017396645687/posts/default/-/webhooks'/><link rel='alternate' type='text/html' href='http://edoism.orcutt.org/search/label/webhooks'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ed Orcutt</name><uri>http://www.blogger.com/profile/01072069799127687951</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_tXU2PrpKxHU/SuDD5YwomTI/AAAAAAAAAII/hCrRNUZWOto/S220/edo_transjpg.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1930213017396645687.post-8516568039072875034</id><published>2010-11-02T13:03:00.003-06:00</published><updated>2010-11-02T13:06:27.074-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webhooks'/><category scheme='http://www.blogger.com/atom/ns#' term='kynetx'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Twitter WebHook for Kynetx Applications</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_tXU2PrpKxHU/TKo_taGORyI/AAAAAAAAAOI/_LZqYi6u-ks/s1600/theme.logo.eb3fcf.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_tXU2PrpKxHU/TKo_taGORyI/AAAAAAAAAOI/_LZqYi6u-ks/s1600/theme.logo.eb3fcf.png" /&gt;&lt;/a&gt;&lt;/div&gt;You can have a Twitter &lt;a href="http://www.webhooks.org/"&gt;WebHook &lt;/a&gt;for your Kynetx application by using &lt;a href="http://notifo.com/"&gt;Notifo &lt;/a&gt;and the &lt;a href="http://push.ly/"&gt;Push.ly &lt;/a&gt;services. Herein are the configuration steps and a simple HelloWorldish Kynetx application. Your Kynetx application will be called where your Twitter account receives a DM, mention, gets a new follower or when someone favorites one of your tweets. Let's jump right into the configuration steps!&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;For this demo we will be using the &lt;a href="http://twitter.com/aculishook"&gt;aculishook (Aculis WebHook) &lt;/a&gt;Twitter account. The first thing you will need to do is to Sign Up for a &lt;a href="http://notifo.com/"&gt;Notifo &lt;/a&gt;account. For this demo we will be using the aculishook account. After you have set up an account at Notifo head on over the &lt;a href="http://push.ly/"&gt;Push.ly &lt;/a&gt;and sign in with your Twitter account. Once you are signed into Push.ly, enter your Notifo username and select the actions for which you would like notifications (aka WebHook calls). From the screenshot below you can see that I have selected all the actions.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_tXU2PrpKxHU/TNBbNP6c6lI/AAAAAAAAAOg/5hx3vjTI8Ok/s1600/screenshot_pushly.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://4.bp.blogspot.com/_tXU2PrpKxHU/TNBbNP6c6lI/AAAAAAAAAOg/5hx3vjTI8Ok/s400/screenshot_pushly.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now let's head back to Notifo to set up the WebHook call into our Kynetx application. On the Notifo site visit the notifications page (Login then click Settings and click on Notification Settings). Then fill out the "Notification Webhook URL" field then click Save.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_tXU2PrpKxHU/TNBbW80x8yI/AAAAAAAAAOk/yhNBgPC7EA0/s1600/screenshot_notifo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="50" src="http://2.bp.blogspot.com/_tXU2PrpKxHU/TNBbW80x8yI/AAAAAAAAAOk/yhNBgPC7EA0/s400/screenshot_notifo.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The construction of the WebHook URL for a Kynetx application is described in the online Kynetx documentation for &lt;a href="http://docs.kynetx.com/docs/Webhook_Endpoint"&gt;Webhook Endpoints&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;http://webhooks.kynetx.com:3098/h/{&lt;i&gt;appid&lt;/i&gt;}/{&lt;i&gt;eventname&lt;/i&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;appid &lt;/i&gt;is the Kynetx application identifier assigned automatically when you created your application. You don't have any choice to make here, just cut &amp;amp; paste. For this demo the &lt;i&gt;appid &lt;/i&gt;was &lt;b&gt;a169x151&lt;/b&gt;. The &lt;i&gt;eventname&lt;/i&gt; is completely in your hands, choose something meaningful as you will also need to use it as an event name in your Kynetx application. For this demo application the &lt;i&gt;eventname &lt;/i&gt;is &lt;b&gt;&lt;span style="font-family: inherit;"&gt;notifohook&lt;/span&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Finally we have the Kynetx application which will receive the WebHook calls from Notifo. The bit of Kynetx code that enables your application to respond is in the select statement:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;select when webhook notifohook&lt;/div&gt;&lt;br /&gt;Notice that eventname &lt;b&gt;notifohook &lt;/b&gt;is the same one that was used in the WebHook URL enter at Notifo? Notifo WebHook calls pass along ten parameters which are available as event:param("") within your Kynetx application. This demo application does not do anything particularly interesting with the data received, it's just saved to a Google form.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: javascript"&gt;ruleset a169x151 {&lt;br /&gt;  meta {&lt;br /&gt;    name "Aculis WebHook"&lt;br /&gt;    description &amp;lt;&amp;lt; Aculis demo of Kynetx Twitter Webhook  &amp;gt;&amp;gt;&lt;br /&gt;    author "Ed Orcutt"&lt;br /&gt;    logging on&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  dispatch {&lt;br /&gt;    domain "example.com"&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  global { }&lt;br /&gt;&lt;br /&gt;  rule Notifo_Webhook is active {&lt;br /&gt;    select when webhook notifohook&lt;br /&gt;    pre {&lt;br /&gt;      notifo_id          = event:param("notifo_id");&lt;br /&gt;      notifo_message     = event:param("notifo_message");&lt;br /&gt;      notifo_service     = event:param("notifo_service");&lt;br /&gt;      notifo_signature   = event:param("notifo_signature");&lt;br /&gt;      notifo_title       = event:param("notifo_title");&lt;br /&gt;      notifo_to_username = event:param("notifo_to_username");&lt;br /&gt;      notifo_type        = event:param("notifo_type");&lt;br /&gt;      notifo_unix_time   = event:param("notifo_unix_time");&lt;br /&gt;      notifo_uri         = event:param("notifo_uri");&lt;br /&gt;      notifo_webhook_url = event:param("notifo_webhook_url");&lt;br /&gt;    }&lt;br /&gt;    every {&lt;br /&gt;      http:post("https://spreadsheets.google.com/a/aculis.net/formResponse?formkey=dElUWGxHSmppczd5Mnl3S0dRaWE0X1E6MQ&amp;amp;ifq")&lt;br /&gt;        with params = {&lt;br /&gt;          "entry.0.single": notifo_id,&lt;br /&gt;          "entry.1.single": notifo_message,&lt;br /&gt;          "entry.2.single": notifo_service,&lt;br /&gt;          "entry.3.single": notifo_signature,&lt;br /&gt;          "entry.4.single": notifo_title,&lt;br /&gt;          "entry.5.single": notifo_to_username,&lt;br /&gt;          "entry.6.single": notifo_type,&lt;br /&gt;          "entry.7.single": notifo_unix_time,&lt;br /&gt;          "entry.8.single": notifo_uri,&lt;br /&gt;          "entry.9.single": notifo_webhook_url,&lt;br /&gt;          "submit": "Submit",&lt;br /&gt;          "pageNumber": "0",&lt;br /&gt;          "backupcache": ""&lt;br /&gt;        };&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You can take this demo for a test drive by following the Twitter account &lt;a href="http://twitter.com/aculishook"&gt;aculishook&lt;/a&gt;, mentioning @aculishook in a tweet or by favoring one of aculishook's tweets. Then visit the &lt;a href="https://spreadsheets.google.com/pub?key=tITXlGJjis7y2ywKGQia4_Q&amp;amp;single=true&amp;amp;gid=0&amp;amp;output=html"&gt;Google Form &lt;/a&gt;to see the results. The web page view of the Google spreadsheet is only updated every 5 minutes, so there will probably be a delay before you can see the effect of your action. However, the actually Google spreadsheet is updated immediately from the Kynetx application.&lt;br /&gt;&lt;br /&gt;Do let me know if you have found this information useful or if you have any questions!&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1930213017396645687-8516568039072875034?l=edoism.orcutt.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://edoism.orcutt.org/feeds/8516568039072875034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://edoism.orcutt.org/2010/11/twitter-webhook-for-kynetx-applications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1930213017396645687/posts/default/8516568039072875034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1930213017396645687/posts/default/8516568039072875034'/><link rel='alternate' type='text/html' href='http://edoism.orcutt.org/2010/11/twitter-webhook-for-kynetx-applications.html' title='Twitter WebHook for Kynetx Applications'/><author><name>Ed Orcutt</name><uri>http://www.blogger.com/profile/01072069799127687951</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_tXU2PrpKxHU/SuDD5YwomTI/AAAAAAAAAII/hCrRNUZWOto/S220/edo_transjpg.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_tXU2PrpKxHU/TKo_taGORyI/AAAAAAAAAOI/_LZqYi6u-ks/s72-c/theme.logo.eb3fcf.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
