<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dare to Dream? &#187; API</title>
	<atom:link href="http://www.makuchaku.in/blog/category/api/feed" rel="self" type="application/rss+xml" />
	<link>http://www.makuchaku.in/blog</link>
	<description>Good judgment comes from experience; Experience comes from bad judgment.</description>
	<lastBuildDate>Sun, 02 Oct 2011 19:29:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Authentication using Google Accounts for your Rails App</title>
		<link>http://www.makuchaku.in/blog/authentication-using-google-accounts-for-your-rails-app</link>
		<comments>http://www.makuchaku.in/blog/authentication-using-google-accounts-for-your-rails-app#comments</comments>
		<pubDate>Sun, 27 Sep 2009 20:02:15 +0000</pubDate>
		<dc:creator>Mayank Jain (makuchaku)</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[AuthSub]]></category>

		<guid isPermaLink="false">http://www.makuchaku.in/blog/?p=771</guid>
		<description><![CDATA[The methodology is very simple. Redirect the user to grant access to your app for a particular Google service. Once access is granted, use the authentication token to retrieve information related to the user. I demonstrate this with a very simple &#38; idiotic Sinatra app which actually does nothing intelligent &#8211; apart from just outputting [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[ 
<span class = "" style = "height: 40px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.makuchaku.in/blog/authentication-using-google-accounts-for-your-rails-app&layout=button_count&send=false&show_faces=false&width=100&action=like&colorscheme=light&font=" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:100px; height:40px"></iframe></span><p>The methodology is very simple.</p>
<ol>
<li>Redirect the user to grant access to your app for a particular Google service.</li>
<li>Once access is granted, use the authentication token to retrieve information related to the user.</li>
</ol>
<p>I demonstrate this with a very simple &amp; idiotic Sinatra app which actually does nothing intelligent &#8211; apart from just outputting first 10 contacts from the user&#8217;s address book.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">require</span> <span class="st0">&#8216;rubygems&#8217;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">require</span> <span class="st0">&#8216;sinatra&#8217;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">require</span> <span class="st0">&quot;gdata&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">client = <span class="re2">GData::Client::Contacts</span>.<span class="me1">new</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">get <span class="st0">&quot;/&quot;</span> <span class="kw1">do</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; next_url = <span class="st0">&#8216;http://127.0.0.1:4567/app&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; secure = <span class="kw2">false</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; session = <span class="kw2">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; authsub_link = client.<span class="me1">authsub_url</span><span class="br0">&#40;</span>next_url, secure, session, <span class="kw2">nil</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; redirect<span class="br0">&#40;</span>authsub_link<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">get <span class="st0">&#8216;/app&#8217;</span> <span class="kw1">do</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; pp request.<span class="me1">env</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; client.<span class="me1">authsub_token</span> = request.<span class="me1">env</span><span class="br0">&#91;</span><span class="st0">&quot;rack.request.query_hash&quot;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="st0">&quot;token&quot;</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; client.<span class="me1">authsub_token</span> = client.<span class="me1">auth_handler</span>.<span class="me1">upgrade</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; contacts = client.<span class="me1">get</span><span class="br0">&#40;</span><span class="st0">&quot;http://www.google.com/m8/feeds/contacts/default/full?max-results=5&quot;</span><span class="br0">&#41;</span>.<span class="me1">to_xml</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw3">puts</span> contacts</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>More information about using <a href="http://code.google.com/p/gdata-ruby-util/">GData</a> is available at <a href="http://code.google.com/apis/gdata/articles/gdata_on_rails.html">http://code.google.com/apis/gdata/articles/gdata_on_rails.html</a></p>
<p>Example scenarios this can be used?</p>
<ul>
<li>Allowing people to login into your app with their existing google account.</li>
<li>Accessing user data with user&#8217;s permission</li>
<li>Signing up for your app using Google account information</li>
</ul>
<p>Happy Hacking!</p>
 
<span class = "" style = "height: 40px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.makuchaku.in/blog/authentication-using-google-accounts-for-your-rails-app&layout=button_count&send=false&show_faces=false&width=100&action=like&colorscheme=light&font=" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:100px; height:40px"></iframe></span>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.makuchaku.in/blog/authentication-using-google-accounts-for-your-rails-app/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Script free SMS via 160by2.com</title>
		<link>http://www.makuchaku.in/blog/script-free-sms-via-160by2-com</link>
		<comments>http://www.makuchaku.in/blog/script-free-sms-via-160by2-com#comments</comments>
		<pubDate>Thu, 23 Jul 2009 05:54:18 +0000</pubDate>
		<dc:creator>Mayank Jain (makuchaku)</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[160by2.com]]></category>
		<category><![CDATA[Free SMS]]></category>

		<guid isPermaLink="false">http://www.makuchaku.in/blog/?p=715</guid>
		<description><![CDATA[Courtesy &#8211; yet again, Ruby! #!/usr/bin/env ruby &#160; require &#34;rubygems&#34; require &#34;mechanize&#34; &#160; module SMS &#160; &#160; class OneSixtyByTwo &#160; &#160; attr_accessor :agent, :uid &#160; &#160; attr_accessor :urls &#160; &#160; &#160; def initialize&#40;username, password&#41; &#160; &#160; &#160; @urls = &#123; &#160; &#160; &#160; &#160; :login =&#62; &#34;http://m.160by2.com&#34;, &#160; &#160; &#160; &#160; :sms =&#62; &#34;http://m.160by2.com/SaveCompose.asp?l=1&#34; &#160; [...]


No related posts.

Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[ 
<span class = "" style = "height: 40px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.makuchaku.in/blog/script-free-sms-via-160by2-com&layout=button_count&send=false&show_faces=false&width=100&action=like&colorscheme=light&font=" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:100px; height:40px"></iframe></span><p>Courtesy &#8211; yet again, Ruby!</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">#!/usr/bin/env ruby</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">require</span> <span class="st0">&quot;rubygems&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">require</span> <span class="st0">&quot;mechanize&quot;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">module</span> SMS</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">class</span> OneSixtyByTwo</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; attr_accessor <span class="re3">:agent</span>, <span class="re3">:uid</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; attr_accessor <span class="re3">:urls</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">def</span> initialize<span class="br0">&#40;</span>username, password<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">@urls</span> = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">:login</span> =&gt; <span class="st0">&quot;http://m.160by2.com&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re3">:sms</span> =&gt; <span class="st0">&quot;http://m.160by2.com/SaveCompose.asp?l=1&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">@agent</span> = <span class="re2">WWW::Mechanize</span>.<span class="me1">new</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; login = agent.<span class="me1">get</span><span class="br0">&#40;</span>@urls<span class="br0">&#91;</span><span class="re3">:login</span><span class="br0">&#93;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; login.<span class="me1">forms</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">txtUserName</span> = username</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; login.<span class="me1">forms</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">txtPasswd</span> = password</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; page = login.<span class="me1">forms</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">submit</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="re1">@uid</span> = page.<span class="me1">forms</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span>.<span class="me1">action</span>.<span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">&quot;=&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">-1</span><span class="br0">&#93;</span>.<span class="kw3">split</span><span class="br0">&#40;</span><span class="st0">&quot;&amp;&quot;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; <span class="kw1">def</span> sms<span class="br0">&#40;</span>recepient, message<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; message.<span class="kw3">gsub</span>!<span class="br0">&#40;</span><span class="st0">&quot; &quot;</span>, <span class="st0">&quot;+&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; params = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;Msg&quot;</span> =&gt; <span class="re1">@uid</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;TID&quot;</span> =&gt; <span class="st0">&quot;&quot;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;T_MsgId&quot;</span> =&gt; <span class="st0">&quot;&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;categoryid&quot;</span> =&gt; <span class="st0">&quot;28:GoodMorning&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;cmdSend&quot;</span> =&gt; <span class="st0">&quot;Send+SMS&quot;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;txt_mobileno&quot;</span> =&gt; recepient,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="st0">&quot;txt_msg&quot;</span> =&gt; &nbsp;message</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; page = agent.<span class="me1">post</span><span class="br0">&#40;</span>@urls<span class="br0">&#91;</span><span class="re3">:sms</span><span class="br0">&#93;</span>, params<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">if</span> page.<span class="me1">code</span> == <span class="st0">&quot;200&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="kw2">true</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; <span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">return</span> <span class="kw2">false</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">end</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">mobile = <span class="st0">&quot;XXXXXXXXXX&quot;</span></div>
</li>
<li class="li1">
<div class="de1">result = <span class="re2">SMS::OneSixtyByTwo</span>.<span class="me1">new</span><span class="br0">&#40;</span><span class="st0">&quot;your_160by2_username&quot;</span>, <span class="st0">&quot;your_160by2_password&quot;</span><span class="br0">&#41;</span>.<span class="me1">sms</span><span class="br0">&#40;</span>mobile, <span class="st0">&quot;Test message&quot;</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="kw1">if</span> result == <span class="kw2">true</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">puts</span> <span class="st0">&quot;SMS sent to #{mobile}&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw3">puts</span> <span class="st0">&quot;Error in sending the SMS&quot;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>Result&#8230;</p>
<blockquote><p>[makuchaku@Warrior ruby]$ ./160by2.rb<br />
SMS sent to XXXXXXXXXX</p></blockquote>
 
<span class = "" style = "height: 40px;  "><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.makuchaku.in/blog/script-free-sms-via-160by2-com&layout=button_count&send=false&show_faces=false&width=100&action=like&colorscheme=light&font=" scrolling="no" frameborder="0" allowTransparency="true" style="border:none; overflow:hidden; width:100px; height:40px"></iframe></span>

<p>No related posts.</p>
<p>Related posts brought to you by <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.makuchaku.in/blog/script-free-sms-via-160by2-com/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

