<?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-3213900</id><updated>2012-01-22T15:16:03.034-08:00</updated><category term='atom'/><category term='feature requests'/><category term='issues'/><category term='atom publishing protocol'/><title type='text'>Blogger Developers Network</title><subtitle type='html'>The official Blogger Developers Network weblog.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://code.blogger.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://code.blogger.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Eddie Kessler</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>50</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3213900.post-3727559627660892860</id><published>2012-01-21T17:40:00.000-08:00</published><updated>2012-01-22T15:16:03.068-08:00</updated><title type='text'>Customising Threaded Comments</title><content type='html'>&lt;p&gt;Recently we released an update to Blogger’s commenting system that enables people to directly respond to comments. This capability is known as &lt;a href="http://buzz.blogger.com/2012/01/engage-with-your-readers-through.html"&gt;Threaded Comments&lt;/a&gt;. We are pleased to see quite a few people diving in and writing tutorials, including a &lt;a href="http://www.youtube.com/watch?v=LsVV2nyfIEM"&gt;screencast&lt;/a&gt;. It’s wonderful to see the enthusiasm of our developers!&lt;/p&gt;&lt;p&gt;In this post we will look at what are the changes required to modify a custom template to enable Threaded Comments, once you have fulfilled the requirements outlined in the &lt;a href="http://buzz.blogger.com/2012/01/engage-with-your-readers-through.html"&gt;Threaded Comments&lt;/a&gt; announcement post on Buzz.blogger.com. We will then look at how to customise the look and feel of the Threaded Comments using just CSS, and also have a quick peek at alternatives.&lt;/p&gt;&lt;p&gt;Please note, these instructions may not work if your blog’s template is heavily customised. Your template may possibly missing some of the &lt;code&gt;b:includable&lt;/code&gt;s that the instructions below depend on. Please try the following instructions on your template, but if they don’t work come to our &lt;a href="https://groups.google.com/forum/#!forum/bloggerdev"&gt;Blogger Developer forum&lt;/a&gt; and get some help with patching your template. &lt;/p&gt;&lt;p&gt;The first step is to Edit the HTML for your Template, which can be found inside Settings under the Template tab. You must make sure to expand the Widget Templates, as we need to modify the main Blog Widget Template. To find the main Blog Widget code, search for the following Blogger Layouts Template code:&lt;/p&gt;&lt;pre&gt;&amp;lt;b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'&amp;gt;&lt;/pre&gt;&lt;p&gt;Inside the &lt;code&gt;b:widget&lt;/code&gt; are a series of &lt;code&gt;b:includable&lt;/code&gt; blocks. These act a lot like functions in programming languages, in that they can be called from other &lt;code&gt;b:includable&lt;/code&gt; blocks to insert chunks of HTML. The only special block is the includable called &lt;code&gt;main&lt;/code&gt;, which is where the Layout Template engine starts when rendering the Widget’s content. If you don’t see content inside the &lt;code&gt;b:widget&lt;/code&gt;, you need to click the Expand Widget Templates radio button above the edit area.&lt;/p&gt;&lt;p&gt;The Layout Template should include the following code:&lt;/p&gt;&lt;pre&gt;&amp;lt;b:if cond='data:post.showThreadedComments'&amp;gt;&lt;br /&gt;  &amp;lt;b:include data='post' name='threaded_comments'/&amp;gt;&lt;br /&gt;&amp;lt;b:else/&amp;gt;&lt;br /&gt;  &amp;lt;b:include data='post' name='comments'/&amp;gt;&lt;br /&gt;&amp;lt;/b:if&amp;gt;&lt;/pre&gt;&lt;p&gt;The interesting part is that we have a fork here, implemented as a &lt;code&gt;b:if&lt;/code&gt; conditional block, that decides whether to render the comments as threaded or not. The need for this split can be seen on the Threaded Comments announcement on &lt;a href="http://buzz.blogger.com/2012/01/engage-with-your-readers-through.html"&gt;Buzz.blogger.com&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;As a quick aside, if you don’t have this code, but instead just have something like the following:&lt;/p&gt;&lt;pre&gt;&amp;lt;b:include data='post' name='comments'/&amp;gt;&lt;/pre&gt;&lt;p&gt;Then you can get threaded comments by replacing this b:include with the above logic block, assuming you fulfill the requirements laid out in the &lt;a href="http://buzz.blogger.com/2012/01/engage-with-your-readers-through.html"&gt;Threaded Comments announcement post on Buzz.blogger.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Now you can look at the implementation of the threaded_comments includable by searching for the following line of code:&lt;/p&gt;&lt;pre&gt;&amp;lt;b:includable id='threaded_comments' var='post'&amp;gt;&lt;/pre&gt;&lt;p&gt;This code is responsible for rendering the actual threaded comments to screen. You can choose to override this code block to customise the look of your comments, but it is worth noting that if you do, you won’t get updates to this functionality as we change the implementation in the future.&lt;/p&gt;&lt;p&gt;There are two new data members we have introduced with this feature release that you can use to render comment threads:&lt;/p&gt;&lt;ul&gt;  &lt;li&gt;&lt;code&gt;data:post.commentSrc&lt;/code&gt; This is the source to the javascript library that handles actions&lt;/li&gt;  &lt;li&gt;&lt;code&gt;data:post.commentHtml&lt;/code&gt; This is the rendered HTML for the comment thread&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you want to change the look and feel of your comments, we strongly recommend you use the Template Designer to set custom CSS to style the Threaded Comments. We suggest you customise the comments by modifying the property "Advanced &gt; Add CSS". For example, you can add the following CSS code to change the look:&lt;/p&gt;&lt;pre&gt;.comments blockquote { &lt;br /&gt;    border: 1px solid black; color: white; font: Helvetica;&lt;br /&gt;} // draws a border around comment bodies, sets the text font and colour&lt;br /&gt;.comments .inline-thread li { list-style-type: decimal; } // numbers replies&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Finally, you can implement your own version of Threaded Comments by walking the &lt;code&gt;data:post.comments&lt;/code&gt; directly. This will contain all the comments, ordered by time of comment, now with an optional extra field &lt;code&gt;data:comment.inReplyTo&lt;/code&gt; which will contain the &lt;code&gt;id&lt;/code&gt; of the parent comment, if there is one.&lt;/p&gt;&lt;p&gt;If you have any questions about how to customise your Blogger Comments, please feel free to drop by the &lt;a href="https://groups.google.com/forum/#!forum/bloggerdev"&gt;Blogger Developer Forum&lt;/a&gt;. We’re glad to help!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-3727559627660892860?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3727559627660892860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3727559627660892860'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2012/01/customising-threaded-comments.html' title='Customising Threaded Comments'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-1356679731059154830</id><published>2012-01-04T22:06:00.000-08:00</published><updated>2012-01-04T22:06:32.895-08:00</updated><title type='text'>An easier to use interface for the Blogger JSON API</title><content type='html'>&lt;p&gt;As I have been reviewing the applications to use the &lt;a href="http://code.google.com/apis/blogger/docs/2.0/json/getting_started.html"&gt;Blogger JSON API&lt;/a&gt;, I have noticed that a fair number of you appear to be integrating with Blogger JSON API using JavaScript. So, in the interests of making things easier for all of you, here is a walk through of using the just released &lt;a href="http://googlecode.blogspot.com/2011/11/javascript-client-library-for-google.html"&gt;JavaScript Client Library for Google APIs&lt;/a&gt; to access the Blogger JSON API.&lt;/p&gt;&lt;p&gt;The first step is exploring the methods we can call in the &lt;a href="http://code.google.com/apis/explorer/"&gt;Google APIs Explorer&lt;/a&gt;. The method in the Blogger JSON API collection that most people use, understandably, is the method to list the most recent posts for a Blog - &lt;a href="http://code.google.com/apis/explorer/#_s=blogger&amp;_v=v2&amp;_m=posts.list"&gt;&lt;code&gt;posts.list&lt;/code&gt;&lt;/a&gt;. This method takes one required field - the &lt;code&gt;blogId&lt;/code&gt; that identifies a particular blog - and a number of optional arguments that allow us to tune what information is returned.&lt;/p&gt;&lt;p&gt;The information I am requesting from the Blogger JSON API is the post titles and content for the &lt;a href="http://code.blogger.com/"&gt;code.blogger.com&lt;/a&gt; blog which has a &lt;code&gt;blogId&lt;/code&gt; of 3213900. To limit the returned data to just the post titles and content, we use the optional argument &lt;code&gt;fields&lt;/code&gt; with the value of &lt;code&gt;items(content,title)&lt;/code&gt;. Here is a link to the &lt;a href="http://code.google.com/apis/explorer/#_s=blogger&amp;_v=v2&amp;_m=posts.list&amp;blogId=3213900&amp;fields=items(content,title)"&gt;Google APIs Explorer&lt;/a&gt; with the appropriate information pre-filled so you can see both the underlying query that is sent to the Google APIs servers, as well as the shape of the returned JSON data.&lt;/p&gt;&lt;p&gt;The next step is the JavaScript required to request this data and make use of it. I am using the JavaScript Client Library to both construct the query, as well as navigate the results, reducing the complexity of the code.&lt;/p&gt;&lt;p&gt;To load the library, all we have to do is include a script in our HTML that loads the library as follows:&lt;/p&gt;&lt;pre&gt;&amp;lt;script src="https://apis.google.com/js/client.js?onload=init"&gt;&amp;lt;/script&gt;&lt;/pre&gt;&lt;p&gt;The part of this code to pay attention to is the argument &lt;code&gt;onload=init&lt;/code&gt;. This nominates the &lt;code&gt;init&lt;/code&gt; function to be called once the JavaScript Client Library has loaded. The &lt;code&gt;init&lt;/code&gt; function is where we configure the client key and the API we want to work with:&lt;/p&gt;&lt;pre&gt;function init() {&lt;br /&gt;  gapi.client.setApiKey('YOUR_API_KEY');&lt;br /&gt;  gapi.client.load('blogger', 'v2', function() {&lt;br /&gt;    // ...  &lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;You can retrieve the API Key from your project on the &lt;a href="https://code.google.com/apis/console/"&gt;Google APIs Console&lt;/a&gt;, once you have requested that I enable the Blogger API for your project. The &lt;code&gt;gapi.client.load&lt;/code&gt; function takes the API name, and version, of the API you want to use, and a callback function to run once the API support code has been loaded. In this code, we are loading the Blogger v2 API.&lt;/p&gt;&lt;p&gt;Inside the &lt;code&gt;gapi.client.load&lt;/code&gt; callback, we have the following code to configure a request to the Google APIs servers:&lt;/p&gt;&lt;pre&gt;var request = gapi.client.blogger.posts.list({&lt;br /&gt;  'blogId': 3213900,&lt;br /&gt;  'fields': 'items(content,title)'&lt;br /&gt;});&lt;/pre&gt;&lt;p&gt;Note how we now no longer need to construct our own query url. The JavaScript Client Library deals with all the messy issues of making sure the arguments are correctly escaped. Next, we can issue the request to the servers as follows:&lt;/p&gt;&lt;pre&gt;request.execute(function(response) {&lt;br /&gt;  // ...&lt;br /&gt;});&lt;/pre&gt;&lt;p&gt;The execute method takes a callback function that will be executed once the Google APIs servers respond. The most important part of this callback function is the data that is handed to us in the &lt;code&gt;response&lt;/code&gt; argument. In the body of the callback function, I iterate over the items member to pull out the titles and contents of all the returned posts:&lt;/p&gt;&lt;pre&gt;for (var i = 0; i &lt; response.items.length; i++) {&lt;br /&gt;  $("#target").append("&amp;lt;h2&gt;" + response.items[i].title + "&amp;lt;/h2&gt;");&lt;br /&gt;  $("#target").append(response.items[i].content);&lt;br /&gt;  if (i+1&lt;response.items.length) {&lt;br /&gt;    $("#target").append("&amp;lt;hr&gt;");&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;The eagle eyed among you will have noticed that I am using &lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt; to insert the returned HTML into the DOM. I am using the latest stable jQuery hosted on Google’s Libraries API.&lt;/p&gt;&lt;p&gt;You can see the results on &lt;a href="http://code-blogger.appspot.com/"&gt;code-blogger.appspot.com&lt;/a&gt;. I have used &lt;a href="http://html5boilerplate.com/"&gt;HTML5 Boilerplate&lt;/a&gt; as the starting point for building this example, to get all the latest HTML5 magic. If you have any questions about this sample, please post them to the &lt;a href="https://groups.google.com/group/bloggerdev"&gt;Blogger Developers Group&lt;/a&gt;. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-1356679731059154830?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/1356679731059154830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/1356679731059154830'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2012/01/easier-to-use-interface-for-blogger.html' title='An easier to use interface for the Blogger JSON API'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-780823247460418352</id><published>2011-12-18T22:40:00.000-08:00</published><updated>2011-12-18T22:41:08.111-08:00</updated><title type='text'>Changes to ProfileID for Google+ profile users</title><content type='html'>&lt;p&gt;It’s wonderful to see a lot of our users taking us up on our offer to merge our Blogger Profile with the Google+ Profile. For developers this means that there is one small wrinkle to worry about - the format of the &lt;code&gt;ProfileId&lt;/code&gt; for these migrated users has changed.&lt;/p&gt;&lt;p&gt;What’s a &lt;code&gt;ProfileId&lt;/code&gt;, and what’s it used for? &lt;/p&gt;&lt;p&gt;The &lt;code&gt;ProfileId&lt;/code&gt; is a component of the path for the &lt;a href="http://code.google.com/apis/blogger/docs/2.0/developers_guide_protocol.html#RetrievingMetafeed"&gt;Retrieving a List of Blogs&lt;/a&gt; Blogger GData protocol call, which can either be the value &lt;code&gt;default&lt;/code&gt;, which is the recommended value and means the currently authenticated user, or alternatively it can be the profile identifier of the current authenticated user. Up until now, the profile identifier has always been numeric, but for the converted Google+ Profile Blogger users, this is no longer the case.&lt;/p&gt;&lt;p&gt;For users that have converted to using Google+ Profiles on Blogger, the &lt;code&gt;ProfileId&lt;/code&gt; can be derived as follows. Take the Google+ profile url for a user that has chosen to convert, for example &lt;a href="https://plus.google.com/114895967455102275039/"&gt;https://plus.google.com/114895967455102275039/&lt;/a&gt;, then take the numeric portion at the end of the URL, prepend it with a g, and like magic, you have the new Blogger &lt;code&gt;ProfileId&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;If you have any questions, please do not hesitate to ask on the &lt;a href="https://groups.google.com/group/bloggerdev"&gt;Blogger Developers group&lt;/a&gt;, and if you are on Google+, have a look at our &lt;a href="https://plus.google.com/110587955497525318489/posts"&gt;Blogger Google+ Page&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-780823247460418352?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/780823247460418352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/780823247460418352'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/12/changes-to-profileid-for-google-profile.html' title='Changes to ProfileID for Google+ profile users'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-7298836173227646779</id><published>2011-11-08T16:24:00.000-08:00</published><updated>2011-11-09T17:52:33.687-08:00</updated><title type='text'>Introducing custom mobile templates</title><content type='html'>&lt;p&gt;Many Bloggers put a lot of time and effort into creating a unique look for their blog, so today we’re excited to announce that custom templates are now also viewable from mobile devices.&lt;/p&gt;&lt;p&gt;If you have a custom template for your blog and want it to appear on mobile browsers as well, visit the “Template” tab of your dashboard, click on the gear icon beneath the mobile template preview.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-kEQMaYxebJs/Tq-eMEEQTPI/AAAAAAAAARk/OtL411nW0l8/s1600/Screen%2Bshot%2B2011-10-20%2Bat%2B11.14.31%2BAM.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="185" width="320" src="http://2.bp.blogspot.com/-kEQMaYxebJs/Tq-eMEEQTPI/AAAAAAAAARk/OtL411nW0l8/s320/Screen%2Bshot%2B2011-10-20%2Bat%2B11.14.31%2BAM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p style="clear:both"&gt;Then select “Custom” from the “Choose mobile template” pulldown.&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-dyyH6l2heQI/Tp5hR4sdzdI/AAAAAAAAAPs/HkYfZ8kpAwQ/s1600/mobile_template_picker_pulldown.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="287" width="320" src="http://1.bp.blogspot.com/-dyyH6l2heQI/Tp5hR4sdzdI/AAAAAAAAAPs/HkYfZ8kpAwQ/s320/mobile_template_picker_pulldown.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p style="clear:both"&gt;Your template may not look exactly the same on a mobile browser, so click “Preview” to make sure it appears the way you want it to before you save it. &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0WqjKBhin9A/Tp5hIvXfoaI/AAAAAAAAAPg/3uRo92-FlmA/s1600/mobile_template_picker.png" imageanchor="1" style="clear:left; float:left;margin-right:1em; margin-bottom:1em"&gt;&lt;img border="0" height="288" width="320" src="http://2.bp.blogspot.com/-0WqjKBhin9A/Tp5hIvXfoaI/AAAAAAAAAPg/3uRo92-FlmA/s320/mobile_template_picker.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p style="clear:both"&gt;If you have gadgets on your blog, you can also control which of them will be available in mobile view, using this new attribute: &lt;code&gt;mobile&lt;/code&gt; in &lt;code&gt;&amp;lt;b:widget&amp;gt;&lt;/code&gt; tag.  It can be &lt;code&gt;'default'&lt;/code&gt;, &lt;code&gt;'yes'&lt;/code&gt;, &lt;code&gt;'no'&lt;/code&gt;, or &lt;code&gt;'only'&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;The widgets that display on mobile by default are the following:&lt;ul&gt;&lt;li&gt;Header&lt;/li&gt;&lt;li&gt;Blog&lt;/li&gt;&lt;li&gt;Profile&lt;/li&gt;&lt;li&gt;PageList&lt;/li&gt;&lt;li&gt;AdSense&lt;/li&gt;&lt;li&gt;Attribution&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;The following widget will not be available in mobile view, because it’s a &lt;b&gt;BlogArchive&lt;/b&gt; widget.&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;b:widget id='BlogArchive1' title='Blog Archive' type='BlogArchive'&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;To make it available in mobile view, add &lt;code&gt;mobile=’yes’&lt;/code&gt; attribute to it.&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;b:widget id='BlogArchive1' &lt;span style="color:red;"&gt;mobile='yes'&lt;/span&gt; title='Blog Archive' type='BlogArchive'&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Setting &lt;code&gt;mobile&lt;/code&gt; to &lt;code&gt;'no'&lt;/code&gt; makes a widget not display in mobile view, even if available in mobile view by default.&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;b:widget id='Attribution1' &lt;span style="color: red;"&gt;mobile='no'&lt;/span&gt; title='Attribution' type='Attribution'&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;You can also make a widget available only in mobile view by setting it to &lt;code&gt;'only'&lt;/code&gt;.&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;b:widget id='BlogArchive1' &lt;span style="color: red;"&gt;mobile='only'&lt;/span&gt; title='Blog Archive' type='BlogArchive'&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The content of a widget can modified for mobile view with the &lt;code&gt;boolean&lt;/code&gt; variable &lt;code&gt;data:blog.isMobile&lt;/code&gt;.&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;div class="widget-content"&amp;gt;&lt;br /&gt;  &amp;lt;b:if cond="data:blog.isMobile"&amp;gt;&lt;br /&gt;    &amp;lt;!-- Show a text link in mobile view.--&amp;gt;&lt;br /&gt;    &amp;lt;a href="http://www.blogger.com"&amp;gt;&lt;br /&gt;      Powered By Blogger&lt;br /&gt;    &amp;lt;/a&amp;gt;&lt;br /&gt;  &amp;lt;b:else/&amp;gt;&lt;br /&gt;    &amp;lt;!-- Show an image link in desktop view.--&amp;gt;&lt;br /&gt;    &amp;lt;a href="http://www.blogger.com"&amp;gt;&lt;br /&gt;      &amp;lt;img expr:src="data:fullButton" alt="Powered By Blogger"/&amp;gt;&lt;br /&gt;    &amp;lt;/a&amp;gt;&lt;br /&gt;  &amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;The above template HTML shows different contents between desktop view and mobile view, depending on the value of the &lt;code&gt;data:blog.isMobile&lt;/code&gt; variable.&lt;/p&gt;&lt;p&gt;You can conditionally give different CSS properties to a same class between desktop view and mobile view, as the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag of Blogger mobile templates has &lt;code&gt;mobile&lt;/code&gt; as its class. First, make sure the &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; tag of your custom template is same as the following one. &lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;body expr:class='&amp;amp;quot;loading&amp;amp;quot; + data:blog.mobileClass'&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;Then, you can define different CSS properties for desktop and mobile view.&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;/* For desktop view */&lt;br /&gt;.date-posts {&lt;br /&gt;  margin: 0 -$(separator.outdent);&lt;br /&gt;  padding: 0 $(separator.outdent);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/* For mobile view */&lt;br /&gt;.mobile .date-posts {&lt;br /&gt;  margin: 0;&lt;br /&gt;  padding: 0;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;We hope you will enjoy making your very own mobile templates.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Updated:&lt;/b&gt; Changed &lt;code&gt;data:mobile&lt;/code&gt; to &lt;code&gt;data:blog.isMobile&lt;/code&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-7298836173227646779?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/7298836173227646779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/7298836173227646779'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/11/introducing-custom-mobile-templates.html' title='Introducing custom mobile templates'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-kEQMaYxebJs/Tq-eMEEQTPI/AAAAAAAAARk/OtL411nW0l8/s72-c/Screen%2Bshot%2B2011-10-20%2Bat%2B11.14.31%2BAM.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-6049643111519186400</id><published>2011-10-13T17:51:00.000-07:00</published><updated>2011-10-13T17:54:31.372-07:00</updated><title type='text'>Template Change: Analytics Section</title><content type='html'>&lt;p&gt;Today we have made a change to the Layouts Template language to improve &lt;a href="http://www.google.com/analytics/"&gt;Google Analytics&lt;/a&gt; coverage. We have added the following includable section. &lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;b:includable id='google-analytics' var='blog'&gt;&lt;br /&gt;  &amp;lt;b:if cond='data:blog.analyticsAccountNumber'&amp;gt;&lt;br /&gt;    &amp;lt;script type='text/javascript'&amp;gt;&lt;br /&gt;      var _gaq = _gaq || [];&lt;br /&gt;      _gaq.push(['_setAccount', '&amp;lt;data:blog.analyticsAccountNumber/&amp;gt;']);&lt;br /&gt;      _gaq.push(['_trackPageview']);&lt;br /&gt;      (function() {&lt;br /&gt;        var ga = document.createElement('script');&lt;br /&gt;        ga.type = 'text/javascript';&lt;br /&gt;        ga.async = true;&lt;br /&gt;        ga.src = (document.location.protocol == 'https:' ?&lt;br /&gt;                  'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';&lt;br /&gt;        var s = document.getElementsByTagName('script')[0];&lt;br /&gt;        s.parentNode.insertBefore(ga, s);&lt;br /&gt;      })();&lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;/b:if&amp;gt;&lt;br /&gt;&amp;lt;/b:includable&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;This now allows you to include analytics tracking on your blog by adding the following include call to your template, preferably right before the close body tag so it doesn’t delay the visible page being rendered:&lt;/p&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;b:include name='google-analytics' data='blog'/&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;For more details on the benefits you get from using Google Analytics, see &lt;a href="http://buzz.blogger.com/2011/10/google-analytics-support-in-blogger.html"&gt;this post on Blogger Buzz&lt;/a&gt;. If you have any questions about this new functionality, please join in the discussion on the &lt;a href="http://groups.google.com/group/bloggerDev"&gt;Blogger Developer Group&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-6049643111519186400?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/6049643111519186400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/6049643111519186400'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/10/today-we-have-made-change-to-layouts.html' title='Template Change: Analytics Section'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-252207238930334231</id><published>2011-09-27T16:42:00.001-07:00</published><updated>2011-09-27T16:43:54.951-07:00</updated><title type='text'>Trying on the new Dynamic Views from Blogger</title><content type='html'>As you may have noticed, the Blogger Development Network Blog looks a lot different today. That’s because we—along with a few other Google blogs—are trying out a new set of Blogger templates called Dynamic Views.&lt;a href="http://buzz.blogger.com/2011/09/dynamic-views-seven-new-ways-to-share.html"&gt;Launched today&lt;/a&gt;, Dynamic Views is a unique browsing experience that makes it easier and faster for readers to explore blogs in interactive ways. We’re using the Classic view, but you can also preview this blog in any of the other six new views by using the view selection bar at the top left of the screen.&lt;iframe allowfullscreen="" frameborder="0" height="284" src="http://www.youtube.com/embed/lpDQF2lFnBU" width="500"&gt;&lt;/iframe&gt;We’re eager to hear what you think about the new Dynamic Views. You can submit feedback using the “Send feedback” link on the bottom right of this page. If you like what you see here, and we hope you do, we encourage you to try out the new look(s) on your own blog—read the &lt;a href="http://buzz.blogger.com/2011/09/dynamic-views-seven-new-ways-to-share.html"&gt;Blogger Buzz post&lt;/a&gt; for more info.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-252207238930334231?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/252207238930334231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/252207238930334231'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/09/as-you-may-have-noticed-blogger.html' title='Trying on the new Dynamic Views from Blogger'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/lpDQF2lFnBU/default.jpg' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-237676474877526514</id><published>2011-09-08T01:59:00.000-07:00</published><updated>2011-09-08T01:59:58.392-07:00</updated><title type='text'>Blogger JSON API now available</title><content type='html'>Today we’re announcing the public availability of the Blogger JSON API we &lt;a href="http://www.google.com/events/io/2011/sessions/building-a-business-web-presence-using-blogger-apis.html"&gt;spoke about at this year’s Google I/O&lt;/a&gt;. The focus of this release is to make it easier to build applications that interoperate with Blogger by using a lightweight JSON syntax.&lt;br /&gt;&lt;br /&gt;One of the driving reasons for this release is to recognize how much the world has changed during the lifetime of Blogger. Where once we built everything as desktop applications, we now spend our time building full-blown applications inside the browser frame using JavaScript and HTML5 apps.&lt;br /&gt;&lt;br /&gt;To start using the Blogger JSON API, sign in to the &lt;a href="https://code.google.com/apis/console"&gt;Google API Console&lt;/a&gt; and request Blogger API access. This will take you to a form that asks you to explain how you intend to use the API, and an estimate of your daily traffic levels. This information helps us evaluate your request for approval and give us a better understanding of how the community is using our APIs as we work to improve them.&lt;br /&gt;&lt;br /&gt;To demonstrate how much easier this API is to use, especially for JavaScript mashups, here is a JavaScript renderer for the Blogger Buzz blog.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;html&amp;gt;&lt;br /&gt;  &amp;lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;script&amp;gt;&lt;br /&gt;  // Request an API Key for the Blogger API from &lt;br /&gt;  // https://code.google.com/apis/console/&lt;br /&gt;  var apikey = "YOUR API KEY HERE";&lt;br /&gt;  &lt;br /&gt;  // You can find the blogId in the HTML source of a blog&lt;br /&gt;  var blogId = "2399953";&lt;br /&gt;  &lt;br /&gt;  // When the document is loaded&lt;br /&gt;  $(document).ready(function() {&lt;br /&gt;   &lt;br /&gt;    // Make a JSONP request for the Posts on the Blogger Buzz blog&lt;br /&gt;    $.ajax({&lt;br /&gt;      url:"https://www.googleapis.com/blogger/v2/blogs/”+&lt;br /&gt;        blogId+”/posts?key="+apikey,&lt;br /&gt;      dataType: "jsonp",&lt;br /&gt;      success: function(data, textStatus, jqXHR) {&lt;br /&gt;        var items = [];   &lt;br /&gt;        // Construct a chunk of HTML for each post&lt;br /&gt;        // containing the Post title, content, and a &lt;br /&gt;        // link to the post author.&lt;br /&gt;        $.each(data.items, function(index, value) {&lt;br /&gt;          items.push("&amp;lt;h2&amp;gt;"+value.title+"&amp;lt;/h2&amp;gt;"+value.content+&lt;br /&gt;            "&amp;lt;p&amp;gt;Posted by &amp;lt;em&amp;gt;&amp;lt;a href='"+value.author.url+"'&amp;gt;"+&lt;br /&gt;            value.author.displayName+"&amp;lt;/a&amp;gt;&amp;lt;/em&amp;gt;&amp;lt;/p&amp;gt;");&lt;br /&gt;        });&lt;br /&gt;&lt;br /&gt;        // And finally, append the generated content to the page body.&lt;br /&gt;        $(items.join('')).appendTo('body');&lt;br /&gt;      }&lt;br /&gt;    });&lt;br /&gt;  });&lt;br /&gt;  &amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;It is important to understand that this release is the first step on a journey of discovery, as we work with all of you to build a better API for using Blogger. Please review the &lt;a href="https://code.google.com/apis/blogger/docs/2.0/json/getting_started.html"&gt;documentation&lt;/a&gt;, and join in the discussion on &lt;a href="http://groups.google.com/group/bloggerdev"&gt;Blogger Developer Group&lt;/a&gt; and let us know what we can add to the API to make it more useful for you!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-237676474877526514?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/237676474877526514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/237676474877526514'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/09/blogger-json-api-now-available.html' title='Blogger JSON API now available'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-6879480944231206609</id><published>2011-06-15T19:20:00.000-07:00</published><updated>2011-06-15T19:20:06.799-07:00</updated><title type='text'>Clarifying recent changes to Blogger’s feed access</title><content type='html'>Recently we updated Blogger’s authorization system to be more consistent with regards to the difference in roles between &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;blogger.com&lt;/span&gt; and &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;blogspot.com&lt;/span&gt;. As a result, some third-party integrations that depended on an unintended quirk of our previous system broke. This post explains the issue and how to update your implementation to be compliant with the correct authorization behavior.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://code.google.com/apis/blogger/docs/2.0/developers_guide_protocol.html"&gt;Blogger Developer’s Guide&lt;/a&gt; explains how to authenticate to our services on the URLs under &lt;span class="Apple-style-span" style="color: #38761d; font-family: 'Courier New', Courier, monospace;"&gt;http://www.blogger.com/feeds/&lt;i&gt;profileID&lt;/i&gt;/&lt;/span&gt;. The unintended quirk allowed authentication requests against public feed URLs hosted on the &lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;blogspot.com&lt;/span&gt; domain. Under the updated system, this is no longer permitted.&lt;br /&gt;&lt;br /&gt;Now, authorization is only permitted against &lt;span class="Apple-style-span" style="color: #38761d; font-family: 'Courier New', Courier, monospace;"&gt;https://www.blogger.com/feeds/&lt;/span&gt; and &lt;span class="Apple-style-span" style="color: #38761d; font-family: 'Courier New', Courier, monospace;"&gt;http://www.blogger.com/feeds/&lt;/span&gt;. The feeds are not going away; instead we are separating the read-only, unauthenticated subscriptions from authenticated access to Blogger’s read-write APIs.&lt;br /&gt;&lt;br /&gt;We apologize that the impact of this behavior change was not made more clear initially. If you have any further questions on this matter — or Blogger development in general — please post a question in &lt;a href="https://groups.google.com/group/bloggerdev"&gt;our BloggerDev forum&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-6879480944231206609?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/6879480944231206609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/6879480944231206609'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/06/clarifying-recent-changes-to-bloggers.html' title='Clarifying recent changes to Blogger’s feed access'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-8398240586497962757</id><published>2011-03-25T12:05:00.001-07:00</published><updated>2011-03-25T12:05:33.228-07:00</updated><title type='text'>Using OACurl to explore Blogger’s API</title><content type='html'>Blogger’s GData API is now available over HTTPS using OAuth 2. These changes result in less code, increased productivity, and enhanced security. Let’s take a look at how it works using OACurl, a wrapper for the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;curl&lt;/span&gt; command line tool that authenticates you using OAuth.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Prerequisites&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First up you need to install &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; and &lt;a href="http://maven.apache.org/"&gt;Maven&lt;/a&gt;. Mercurial is the source revision control software used by the OACurl project. Maven is a java build system used to download and include the dependencies required by OACurl. Once we begin using &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;oacurl&lt;/span&gt; we will use &lt;a href="http://tidy.sourceforge.net/"&gt;HTML Tidy&lt;/a&gt; to make the returned XML readable.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Getting OACurl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now that you have installed Maven and Mercurial, you can checkout &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;oacurl&lt;/span&gt; and build it as follows.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ hg clone https://oacurl.googlecode.com/hg/ oacurl&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cd oacurl&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ mvn assembly:assembly&lt;/div&gt;&lt;br /&gt;Once you have done this you will have a shell script in your current directory called &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;oacurl&lt;/span&gt; that you can use to invoke &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;oacurl&lt;/span&gt; with all the appropriate Java class paths set for you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Logging into Blogger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Logging into Blogger using OAuth involves doing a round trip to Google’s servers to grant access for third parties. In the case of &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;oacurl&lt;/span&gt;, this involves invoking a web browser that shows you that oacurl is requesting access to your Blogger account. &lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ./oacurl login --blogger&lt;/div&gt;&lt;br /&gt;Once you have granted access, then you will be able to explore Blogger’s API using &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;oacurl&lt;/span&gt;.&lt;br /&gt;Retrieving a list of your Blogger blogs&lt;br /&gt;&lt;br /&gt;A good place to start is to list out your blogs. This is an Atom feed where each item in the list is a blog owned by the user who requested it. &lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ./oacurl https://www.blogger.com/feeds/default/blogs&lt;/div&gt;&lt;br /&gt;To see the blogs of a specific user you can change the default for a specific user’s profile id instead. For instance, here is a list of my blogs.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ./oacurl https://www.blogger.com/feeds/16258312240222542576/blogs&lt;/div&gt;&lt;br /&gt;To make the output XML readable, I suggest piping the output from the commands through &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;tidy&lt;/span&gt; like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ./oacurl https://www.blogger.com/feeds/default/blogs | tidy -xml -quiet -indent&lt;/div&gt;&lt;br /&gt;I will leave that off the following commands for readability.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Retrieving the feed of a specific Blogger blog&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To retrieve the content of a blogger blog, we select the blog we want from the list of blogs in the blog feed, and then follow the appropriate link. In this case we are using the post link as it stays within the scope of our OAuth authorisation.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;link rel='http://schemas.google.com/g/2005#post'&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type='application/atom+xml' href= 'http://www.blogger.com/feeds/4967929378133675647/posts/default' /&amp;gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Posting a new entry to a feed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If I wanted to post a new entry to my test blog, all I need to do is create a new entry in Atom format, and post it to the above url. So, I create a file with the following content called &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;post.xml&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;entry xmlns='http://www.w3.org/2005/Atom'&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &amp;lt;title type="text"&amp;gt;Posting via OACurl&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; &amp;lt;content type="xhtml"&amp;gt;And some &amp;lt;b&amp;gt;content&amp;lt;/b&amp;gt;.&amp;lt;/content&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;/entry&amp;gt;&lt;/div&gt;&lt;br /&gt;I can submit this to Blogger to create a new post like this:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cat post.xml | ./oacurl -X POST https://www.blogger.com/feeds/4967929378133675647/posts/default&lt;/div&gt;&lt;br /&gt;This, of course, won’t work for you, as my test blog is only set up for me to post to. Modify the post URL in the command to match the one from one of the Blogger blogs you own. The result from the command is the fully expanded Atom entry for the post that was just created. &lt;br /&gt;&lt;br /&gt;This Atom entry contains the information you need to modify it. The link with &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;rel='edit'&lt;/span&gt; is the magic entry. For blogger, this is the same as the &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;rel='self'&lt;/span&gt; link. To edit the content for the blog post I just created, first I retrieve the content at the edit URL:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ ./oacurl https://www.blogger.com/feeds/4967929378133675647/posts/default/2170959137511831372 &amp;gt; post-edit.xml&lt;/div&gt;&lt;br /&gt;We can now modify the title and content using a text editor, and then PUT it back, in proper REST style.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ vi post-edit.xml&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$ cat post-edit.xml | ./oacurl -X PUT https://www.blogger.com/feeds/4967929378133675647/posts/default/2170959137511831372 &lt;/div&gt;&lt;br /&gt;The Atom representation also contains the information required to create, retrieve, and delete the comments on this entry. See if you can spot the appropriate URLs in the output XML.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Using the libraries&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can use various libraries with the Blogger GData APIs, for example the Java GData client, but it is very useful to understand what the library is doing for you under the covers. And exploring is fun!&lt;br /&gt;&lt;br /&gt;If you have any questions after reading this post, please feel free to post your questions to the &lt;a href="http://groups.google.com/group/bloggerdev/"&gt;Blogger Dev Google Group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;References&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OACurl: &lt;a href="http://code.google.com/p/oacurl/"&gt;http://code.google.com/p/oacurl/&lt;/a&gt;&lt;br /&gt;OAuth: &lt;a href="http://oauth.net/"&gt;http://oauth.net/&lt;/a&gt; &lt;br /&gt;Mercurial: &lt;a href="http://mercurial.selenic.com/"&gt;http://mercurial.selenic.com/&lt;/a&gt;&lt;br /&gt;Maven: &lt;a href="http://maven.apache.org/"&gt;http://maven.apache.org/&lt;/a&gt;&lt;br /&gt;Atom overview: &lt;a href="http://en.wikipedia.org/wiki/Atom_%28standard%29"&gt;http://en.wikipedia.org/wiki/Atom_(standard)&lt;/a&gt; &lt;br /&gt;Atom Specification: &lt;a href="http://www.atomenabled.org/developers/syndication/atom-format-spec.php"&gt;http://www.atomenabled.org/developers/syndication/atom-format-spec.php&lt;/a&gt; &lt;br /&gt;HTML Tidy: &lt;a href="http://www.w3.org/People/Raggett/tidy/"&gt;http://www.w3.org/People/Raggett/tidy/&lt;/a&gt;&lt;br /&gt;Java GData Client: &lt;a href="http://code.google.com/p/gdata-java-client/"&gt;http://code.google.com/p/gdata-java-client/&lt;/a&gt; &lt;br /&gt;Blogger Dev Google group: &lt;a href="http://groups.google.com/group/bloggerdev"&gt;http://groups.google.com/group/bloggerdev&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-8398240586497962757?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/8398240586497962757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/8398240586497962757'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2011/03/using-oacurl-to-explore-bloggers-api.html' title='Using OACurl to explore Blogger’s API'/><author><name>Brett Morgan</name><uri>http://www.blogger.com/profile/16258312240222542576</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-6278424758030040915</id><published>2009-06-16T06:52:00.000-07:00</published><updated>2009-06-16T06:57:43.787-07:00</updated><title type='text'>Bug Fixes for 6/15</title><content type='html'>Late last week we fixed a few bugs in Blogger’s Data API implementation:&lt;div&gt;&lt;ul&gt;&lt;li&gt;POSTs to the feed on the blog’s domain (rather than www.blogger.com) now correctly return the entry XML in the 201 response. This was the cause of a variety of strange errors, particularly when using the client libraries.&lt;/li&gt;&lt;li&gt;Posts created via the API now correctly reflect the blog’s “Comments Default for Posts” setting. [&lt;a href="http://code.google.com/p/gdata-issues/issues/detail?id=1242"&gt;Issue 1242&lt;/a&gt;]&lt;/li&gt;&lt;li&gt;The tracker image in feed entries is now consistently served over HTTPS, instead of leaving the scheme relative, to fix a crash with Microsoft Outlook.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Having a reproducable problem? Please file a report in the &lt;a href="http://code.google.com/p/gdata-issues/issues/list"&gt;issue tracker&lt;/a&gt; and we’ll investigate.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-6278424758030040915?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/6278424758030040915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/6278424758030040915'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2009/06/bug-fixes-for-615.html' title='Bug Fixes for 6/15'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-3376464702496330972</id><published>2009-03-13T14:16:00.000-07:00</published><updated>2009-03-13T14:16:43.981-07:00</updated><title type='text'>Bug Fixes and Changes for 3/12</title><content type='html'>Last night we pushed two Blogger Data API bug fixes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gdata-issues/issues/detail?id=901"&gt;Drafts intermittently not appearing in the authenticated ATOM feed&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/gdata-issues/issues/detail?id=979"&gt;Blogger v2 feeds do not contain gd:etag elements&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;With these fixes you should see more reliable results for authenticated and V2 feeds.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;We have also started to include a &lt;code&gt;&amp;lt;div class="blogger-post-footer"&amp;gt;&lt;/code&gt; in each feed entry’s content element. Apologies if this has disrupted your app. We’re working on preventing this from appearing in authenticated requests, and that fix should be rolled out early next week.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;API clients can and should in general ignore the “&lt;code&gt;blogger-post-footer&lt;/code&gt;” element however, as it will be present if a blog admin specifies a Post Feed Footer in &lt;span style="font-weight: bold;"&gt;Settings &amp;gt; Site Feed&lt;/span&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-3376464702496330972?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3376464702496330972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3376464702496330972'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2009/03/bug-fixes-and-changes-for-312.html' title='Bug Fixes and Changes for 3/12'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-3712470327551517981</id><published>2009-01-09T17:12:00.000-08:00</published><updated>2009-01-09T17:18:15.284-08:00</updated><title type='text'>Google Blog Converters 1.0 Released</title><content type='html'>JJ &lt;a href="http://google-opensource.blogspot.com/2009/01/google-blog-converters-10-released.html"&gt;writes&lt;/a&gt; on the &lt;a href="http://google-opensource.blogspot.com/"&gt;Open Source at Google blog&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Blog authors around the world, Google would like to remind you that it's &lt;a href="http://buzz.blogger.com/2008/12/your-blog-your-data.html"&gt;your blog, your data&lt;/a&gt;.  Now that &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt; allows users the ability to export all contents of their blog, the Data Liberation team would like to announce the &lt;a href="http://code.google.com/p/google-blog-converters-appengine/"&gt;Google Blog Converters&lt;/a&gt; project. This new Open Source project provides the ability to easily move blog posts and comments from service to service. This initial release provides Python libraries and runnable scripts that convert between the export formats of Blogger, &lt;a href="http://www.livejournal.com/"&gt;LiveJournal&lt;/a&gt;, &lt;a href="http://www.movabletype.com/"&gt;MovableType&lt;/a&gt;, and &lt;a href="http://www.wordpress.com/"&gt;WordPress&lt;/a&gt;.&lt;/blockquote&gt;&lt;a href="http://code.google.com/p/google-blog-converters-appengine/"&gt;Give it a spin&lt;/a&gt;. We’ve also released templates to run the converters on &lt;a href="http://appengine.google.com/"&gt;Google App Engine&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-3712470327551517981?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://google-opensource.blogspot.com/2009/01/google-blog-converters-10-released.html' title='Google Blog Converters 1.0 Released'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3712470327551517981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3712470327551517981'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2009/01/google-blog-converters-10-released.html' title='Google Blog Converters 1.0 Released'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-8269669080494986108</id><published>2008-10-01T16:45:00.000-07:00</published><updated>2008-10-01T16:55:14.827-07:00</updated><title type='text'>Bug Fixes for October 1</title><content type='html'>We released a few bug fixes tonight for regressions introduced last week:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://code.google.com/p/gdata-issues/issues/detail?id=795"&gt;Issue 795&lt;/a&gt;:&lt;/b&gt; Blog metafeed did not contain &lt;code&gt;rel="self"&lt;/code&gt; links in entries. This had the even more unfortunate side effect of breaking some of our sample code, which was using these links to derive blog IDs. &lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://code.google.com/p/gdata-issues/issues/detail?id=798"&gt;Issue 798&lt;/a&gt;:&lt;/b&gt; Query parameters were being repeated in the &lt;code&gt;rel="next"&lt;/code&gt; and &lt;code&gt;rel="prev"&lt;/code&gt; links in feeds, leading to invalid duplicate parameters.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://code.google.com/p/gdata-issues/issues/detail?id=803"&gt;Issue 803&lt;/a&gt;:&lt;/b&gt; Unable to fetch blog &lt;code&gt;&lt;entry&gt;&lt;/entry&gt;&lt;/code&gt; documents.&lt;/li&gt;&lt;/ul&gt;We apologize for these regressions, and hope that they’ve been fixed satisfactorily.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-8269669080494986108?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/8269669080494986108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/8269669080494986108'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2008/10/bug-fixes-for-october-1.html' title='Bug Fixes for October 1'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-7491848353716487100</id><published>2008-09-23T10:26:00.000-07:00</published><updated>2008-09-23T10:36:30.893-07:00</updated><title type='text'>Feeds now include Media RSS thumbnails</title><content type='html'>With the most recent release of Blogger we’ve added &lt;a href="http://search.yahoo.com/mrss"&gt;Media RSS&lt;/a&gt; &lt;code&gt;&amp;lt;media:thumbnail&amp;gt;&lt;/code&gt; elements to both Atom and RSS feeds.&lt;br /&gt;&lt;br /&gt;The &lt;code&gt;&amp;lt;media:thumbnail&amp;gt;&lt;/code&gt; element links to a 72x72 pixel version of the first image in the post. Only images uploaded through Blogger to PicasaWeb are available as thumbnails.&lt;br /&gt;&lt;br /&gt;We hope that you’ll be able to find fun uses for this new element. We’ve added thumbnail support to Blogger’s Blog List page element as a new option: Blog Lists can now display the most recent thumbnail from Blogger and other Media RSS–enabled feeds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-7491848353716487100?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/7491848353716487100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/7491848353716487100'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2008/09/feeds-now-include-media-rss-thumbnails.html' title='Feeds now include Media RSS thumbnails'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-7802332608795063692</id><published>2008-05-09T09:45:00.000-07:00</published><updated>2008-05-09T09:55:14.448-07:00</updated><title type='text'>Atom Threading, Profile URLs, and RSS Validation</title><content type='html'>We’ve just launched three additions / fixes to Blogger’s site feeds:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;&lt;code&gt;&amp;lt;thr:in-reply-to&amp;gt;&lt;/code&gt; elements from Atom Threading Extensions (&lt;a href="http://www.ietf.org/rfc/rfc4685.txt"&gt;RFC 4685&lt;/a&gt;).&lt;/span&gt; These elements point from comment feed entries to the post feed entry that they’re commenting on. They’re especially useful for associating comments from the per-blog comment feed with the relevant posts.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Profile URLs in &amp;lt;person&amp;gt; entries.&lt;/span&gt; We’re now adding &lt;code&gt;&amp;lt;uri&amp;gt;&lt;/code&gt; elements to &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt; elements that point to the person’s Blogger profile or homepage. This matches the behavior on Blogger’s HTML comment pages. We’re also adding these elements to post &lt;code&gt;&amp;lt;entry&amp;gt;&lt;/code&gt;s, but only if the author of the post lists the blog on his profile.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;RSS 2.0 feeds now validate.&lt;/span&gt; We’ve added dummy &lt;code&gt;noreply@blogger.com&lt;/code&gt; email addresses to &lt;code&gt;&amp;lt;person&amp;gt;&lt;/code&gt; entries so that they validate in RSS 2.0, which requires an email address.&lt;/li&gt;&lt;/ul&gt;How are these working out for you? Let us know in the &lt;a href="http://groups.google.com/group/bloggerDev"&gt;Blogger API Google Group&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-7802332608795063692?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/7802332608795063692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/7802332608795063692'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2008/05/atom-threading-profile-urls-and-rss.html' title='Atom Threading, Profile URLs, and RSS Validation'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-3953266741663744344</id><published>2007-11-08T08:47:00.000-08:00</published><updated>2007-11-08T10:14:23.114-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='atom'/><category scheme='http://www.blogger.com/atom/ns#' term='atom publishing protocol'/><title type='text'>Atom Publishing Protocol Interop Meeting, November 13–14</title><content type='html'>Blogger and Google Data API developers will be participating in the &lt;a href="http://www.intertwingly.net/wiki/pie/November2007Interop"&gt;November 2007 Atom Publishing Protocol interoperability meeting&lt;/a&gt;, happening this coming Tuesday and Wednesday, November 13–14. This is a chance for implementers of servers and clients to squash any remaining bugs in their APP code to make sure that they match the upcoming standard.&lt;br /&gt;&lt;br /&gt;Take a look at the &lt;a href="http://www.intertwingly.net/wiki/pie/November2007Interop"&gt;wiki page&lt;/a&gt; for instructions on how you can participate!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-3953266741663744344?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3953266741663744344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3953266741663744344'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2007/11/atom-publishing-protocol-interop.html' title='Atom Publishing Protocol Interop Meeting, November 13–14'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-4849049336186579797</id><published>2007-10-22T12:49:00.000-07:00</published><updated>2007-10-22T12:52:26.425-07:00</updated><title type='text'>Video: Pamela Fox and Ryan Boyd talk about the Blogger JavaScript client library</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DjSO5nAK6wE"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/DjSO5nAK6wE" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;(Or, &lt;a href="http://youtube.com/watch?v=DjSO5nAK6wE"&gt;watch on YouTube&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-4849049336186579797?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/4849049336186579797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/4849049336186579797'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2007/10/video-pamela-fox-and-ryan-boyd-talk.html' title='Video: Pamela Fox and Ryan Boyd talk about the Blogger JavaScript client library'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-576031874711311976</id><published>2007-10-20T08:32:00.000-07:00</published><updated>2007-10-20T08:33:41.299-07:00</updated><title type='text'>Blogger JavaScript Client Library Released</title><content type='html'>Paul McDonald &lt;a href="http://googledataapis.blogspot.com/2007/10/now-available-blogger-javascript-client.html"&gt;just announced&lt;/a&gt; the new Blogger JavaScript client library over on the Google Data APIs Blog:&lt;br /&gt;&lt;blockquote&gt;The Blogger GData JS Client library enables developers to read and write blog posts using calls to our JavaScript library. This is a full client library, with support for authenticated access to private data and read-write capabilities. Now you can create Blogger applications and mashups that can read and write data from your Blogger blogs. No server-side programming is required. Your application can run on any domain, too. No proxying is required.&lt;br /&gt;&lt;/blockquote&gt;We have a new &lt;a href="http://code.google.com/apis/blogger/developers_guide_js.html"&gt;developer guide for JavaScript&lt;/a&gt; and some &lt;a href="http://code.google.com/apis/gdata/samples.html#JavaScript"&gt;code samples&lt;/a&gt; to give you ideas and get you started.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-576031874711311976?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/576031874711311976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/576031874711311976'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2007/10/blogger-javascript-client-library.html' title='Blogger JavaScript Client Library Released'/><author><name>Pete</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='21' height='32' src='http://4.bp.blogspot.com/_ePNaPx__W9w/S1fE6x0fJaI/AAAAAAAABAI/xkq8pdilVM4/S220/DSC_5599.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-3173095742849282349</id><published>2007-10-19T13:40:00.000-07:00</published><updated>2007-10-24T12:14:39.015-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='feature requests'/><category scheme='http://www.blogger.com/atom/ns#' term='issues'/><title type='text'>Reporting and tracking Blogger API bugs</title><content type='html'>Hopefully, you’re really enjoying the Blogger API and the flexibility of being able to post to your blog using your own custom software. Sometimes things don’t work quite the way you’d expect or like and we want to hear about it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;If you find a bug in our Google Data API implementation, or something that we could do better, please file an issue in &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://code.google.com/p/gdata-issues/issues/list"&gt;our tracker&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We use this to keep track of issues with all of the &lt;a href="http://code.google.com/apis/gdata/"&gt;Google data APIs&lt;/a&gt;, so be sure to mention that you’re talking about Blogger when writing your description. While you’re at it, I’d like to hear about it on the &lt;a href="http://groups.google.com/group/bloggerDev"&gt;discussion group&lt;/a&gt; too.&lt;br /&gt;&lt;br /&gt;We’re going to start coordinating this external issue tracker with our internal development, so we’ll update the relevant issues if we ship fixes to them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-3173095742849282349?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3173095742849282349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/3173095742849282349'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2007/10/reporting-and-tracking-blogger-api-bugs.html' title='Reporting and tracking Blogger API bugs'/><author><name>Jeffrey Scudder</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/_54HtFT6yBFI/TIHZVaOA8II/AAAAAAAAAh8/SnKC58oFOEA/S220/edited_1017.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-115565815799777320</id><published>2006-08-15T16:04:00.000-07:00</published><updated>2006-08-16T13:37:02.213-07:00</updated><title type='text'>Blogger API Update</title><content type='html'>Hi folks,&lt;br /&gt;&lt;br /&gt;Just posting to let subscribers to this blog's feed know that new Blogger/GData documentation is &lt;a href="http://code.google.com/apis/gdata/blogger.html"&gt;available on code.google.com&lt;/a&gt;; please stay tuned to the &lt;a href="http://groups.google.com/group/bloggerDev/"&gt;bloggerDev discussion list&lt;/a&gt; for updates.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;-Eric and the Blogger Team at Google&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-115565815799777320?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/115565815799777320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/115565815799777320'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2006/08/blogger-api-update.html' title='Blogger API Update'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-113709462435381456</id><published>2006-01-12T11:33:00.000-08:00</published><updated>2006-01-12T11:37:04.366-08:00</updated><title type='text'>Blogger + Emacs = Crazy Delicious</title><content type='html'>&lt;span style="font-size:78%;"&gt;(sorry, I've been fully &lt;a href="http://www.youtube.com/watch.php?v=IggTu7kV7No"&gt;infected&lt;/a&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://emacsgeek.blogspot.com/2006/01/announcing-atom-blogger.html"&gt;emacsgeek&lt;/a&gt;:&lt;blockquote&gt;"Announcing atom-blogger.el atom-blogger.el found at &lt;a href="http://prdownloads.sourceforge.net/emacspeak/atom-blogger.tar.bz2"&gt;atom-blogger.tar.bz2&lt;/a&gt; is a light-weight Emacs client for posting and  editting blogger.com entries. It uses curl to handle the HTTP side of the  blogger ATOM API, and  relies on Emacs' support for editting XML ---  either via  nxml-mode or Emacs' vanila xml-mode."&lt;/blockquote&gt;[via &lt;a href="http://groups.google.com/group/bloggerDev/browse_thread/thread/2680d8bcea77354f/4dc65dc76564abc3"&gt;bloggerDev&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-113709462435381456?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/113709462435381456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/113709462435381456'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2006/01/blogger-emacs-crazy-delicious.html' title='Blogger + Emacs = Crazy Delicious'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-113278680225273102</id><published>2005-11-23T14:52:00.000-08:00</published><updated>2005-11-23T15:00:02.263-08:00</updated><title type='text'>PHP Atom API Library</title><content type='html'>&lt;a href="http://dentedreality.com.au/"&gt;Beau Lebens&lt;/a&gt; recently informed &lt;a href="http://groups-beta.google.com/group/bloggerDev/"&gt;bloggerDev&lt;/a&gt; that he's posted a PHP library for interacting with Atom APIs (like &lt;a href="http://code.blogger.com/archives/atom-docs.html"&gt;Blogger's&lt;/a&gt;): &lt;a href="http://dentedreality.com.au/phpatomapi/"&gt;http://dentedreality.com.au/phpatomapi/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-113278680225273102?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/113278680225273102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/113278680225273102'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/11/php-atom-api-library.html' title='PHP Atom API Library'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-112931186721001728</id><published>2005-10-14T10:38:00.000-07:00</published><updated>2005-10-14T10:50:50.986-07:00</updated><title type='text'>PHP Atom API Code</title><content type='html'>In case you're ever looking for example code for posting to Blogger's &lt;a href="http://code.blogger.com/archives/atom-docs.html"&gt;Atom API&lt;/a&gt; from PHP, see this post on &lt;a href="http://groups-beta.google.com/group/bloggerDev/"&gt;bloggerDev&lt;/a&gt;: "&lt;a href="http://groups.google.com/group/bloggerDev/browse_thread/thread/d9281710bb20defa/237baf0793bb59ef?tvc=2&amp;q=PHP+code#237baf0793bb59ef"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;Working PHP code to post to Blogger&lt;/a&gt;"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-112931186721001728?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112931186721001728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112931186721001728'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/10/php-atom-api-code.html' title='PHP Atom API Code'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-112931136622112610</id><published>2005-10-14T10:35:00.000-07:00</published><updated>2005-10-14T10:51:04.906-07:00</updated><title type='text'>Photolightning</title><content type='html'>Our friends at &lt;a href="http://www.photolightning.com/"&gt;Photolightning&lt;/a&gt; just released &lt;a href="http://www.photolightning.com/partner/blogger-landing.html"&gt;their latest version&lt;/a&gt;, which incorporates some nifty Blogger functionality — it can post photos to blogs, which can then be purchased at &lt;a href="http://www.clubphoto.com/"&gt;ClubPhoto&lt;/a&gt;. Here's an &lt;a href="http://photolightning.blogspot.com/"&gt;example blog&lt;/a&gt; with some Photolightning posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-112931136622112610?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112931136622112610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112931136622112610'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/10/photolightning.html' title='Photolightning'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-112447810618999490</id><published>2005-08-19T11:46:00.000-07:00</published><updated>2005-10-14T10:51:17.670-07:00</updated><title type='text'>API of the week!</title><content type='html'>FeedBurner just &lt;a href="http://www.burningdoor.com/feedburner/archives/001372.html"&gt;announced&lt;/a&gt; their RESTful &lt;a href="http://www.feedburner.com/fb/a/api/management/docs"&gt;Feed Management API&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Tired of coming to FeedBurner to analyze your stats? Use the API. Tired of "logging in" via a "browser" to "edit" your feed "settings"? Use the API.&lt;br /&gt; &lt;br /&gt;What can't you do with the API? Nothing, with one exception. The API has a built-in limit of 20 burned feeds per user id. We will ratchet this down even lower if it's abused, but that seems like a reasonable number to get started.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-112447810618999490?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112447810618999490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112447810618999490'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/08/api-of-week.html' title='API of the week!'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-112309403820647967</id><published>2005-08-03T11:26:00.000-07:00</published><updated>2005-10-14T10:51:30.600-07:00</updated><title type='text'>BlogMarks support</title><content type='html'>François Hodierne &lt;a href="http://groups-beta.google.com/group/bloggerDev/browse_thread/thread/e19f8983e2e348af/9fce90757e82acbe"&gt;recently implemented&lt;/a&gt; Blogger Atom API support on blogmarks.net:&lt;blockquote&gt;"The good news is that this PHP/PEAR implementation is open source and immediately available. Be careful, this is not very seriously tested."&lt;br /&gt;&lt;br /&gt;You can get it from here:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the class: &lt;a href="http://www.blogmarks.net/files/Services_Blogger_03.zip"&gt;blogmarks.net/files/Services_Blogger_03.zip&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;a package with all dependencies: &lt;a href="http://www.blogmarks.net/files/Services_Blogger_03-package.zip"&gt;blogmarks.net/files/Services_Blogger_03-package.zip&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;for documentation and feedback, i started a wiki page on the blogmarks.net wiki about it: &lt;a href="http://dev.blogmarks.net/wiki/ServicesBloggerPhpClient"&gt;dev.blogmarks.net/wiki/ServicesBloggerPhpClient&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-112309403820647967?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112309403820647967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112309403820647967'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/08/blogmarks-support.html' title='BlogMarks support'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-112266929401715464</id><published>2005-07-29T13:27:00.000-07:00</published><updated>2005-10-14T10:51:44.683-07:00</updated><title type='text'>Two Minor Updates</title><content type='html'>We've just added two new sections to Blogger's &lt;a href="http://code.blogger.com/archives/atom-docs.html"&gt;Atom API documentation&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.blogger.com/archives/atom-docs.html#draft"&gt;Save a Post as Draft&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.blogger.com/archives/atom-docs.html#extensions"&gt;Blogger Extensions&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;span style="font-style: italic;"&gt;Draft&lt;/span&gt; is what you'd expect it to be. &lt;span style="font-style: italic;"&gt;Extensions&lt;/span&gt; is where we'll be documenting Blogger-specific additions to the API, such as Line Break Status (the only one listed at the moment).&lt;br /&gt;&lt;br /&gt;Please post any questions or comments to &lt;a href="http://groups-beta.google.com/group/bloggerDev/"&gt;bloggerDev&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-112266929401715464?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112266929401715464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112266929401715464'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/07/two-minor-updates.html' title='Two Minor Updates'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-112067549862946696</id><published>2005-07-06T11:43:00.000-07:00</published><updated>2005-07-06T11:44:58.636-07:00</updated><title type='text'>PowerBlog</title><content type='html'>Jon Davis just wrote in to let us know that PowerBlog (a Windows-based desktop blogging client) has gone Open Source:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/pwrblog/"&gt;http://sourceforge.net/projects/pwrblog/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-112067549862946696?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112067549862946696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/112067549862946696'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/07/powerblog.html' title='PowerBlog'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111989679489800158</id><published>2005-06-27T11:24:00.000-07:00</published><updated>2005-06-27T11:26:34.903-07:00</updated><title type='text'>EVDB API</title><content type='html'>EVDB just &lt;a href="http://api.evdb.com/"&gt;launched their API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I like Step 3: "Go make something cool!"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111989679489800158?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111989679489800158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111989679489800158'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/06/evdb-api.html' title='EVDB API'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111938774277774208</id><published>2005-06-21T13:50:00.000-07:00</published><updated>2005-06-21T14:03:43.096-07:00</updated><title type='text'>API from FeedBurner</title><content type='html'>&lt;a href="http://www.burningdoor.com/dick/"&gt;Dick&lt;/a&gt; just &lt;a href="http://www.burningdoor.com/feedburner/archives/001259.html"&gt;announced&lt;/a&gt; FeedBurner's &lt;a href="http://www.feedburner.com/fb/a/api/awareness"&gt;Feed Awareness API&lt;/a&gt;, which "enables any 3rd party to query feed statistics on FeedBurner feeds."&lt;br /&gt;&lt;blockquote&gt;"AwAPI uses a straightforward web-based protocol to receive requests and return data. Known as &lt;a href="http://en.wikipedia.org/wiki/Representational_State_Transfer"&gt;REST&lt;/a&gt;, it allows anyone to request feed traffic data using URLs submitted via HTTP. The data is returned as plain text XML which can be repurposed, transformed, and displayed by applications that you build. Using XML as the output format means testing and exploring AwAPI is as simple as composing an AwAPI URL and then requesting it with a web browser."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111938774277774208?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111938774277774208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111938774277774208'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/06/api-from-feedburner.html' title='API from FeedBurner'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111868002796067958</id><published>2005-06-13T09:18:00.000-07:00</published><updated>2005-06-13T09:27:07.966-07:00</updated><title type='text'>RadioAtomBridge</title><content type='html'>&lt;a href="http://tabletpcthoughts.blogspot.com/"&gt;Scott Lemon&lt;/a&gt; just wrote in to let us know he's released &lt;a href="http://radioatombridge.blogspot.com/"&gt;RadioAtomBridge&lt;/a&gt;, a tool that enables &lt;a href="http://radio.userland.com/"&gt;Radio Userland&lt;/a&gt; to post to Blogger blogs:&lt;blockquote&gt;"A while back I realized that I really wanted to use Radio to be able to post to some of my blogs that are hosted at Blogger.com and Blogspot.com..."&lt;br /&gt; &lt;br /&gt;"So this is it ... the new and improved RadioAtomBridge Tool ... a derivative of the xManilaBloggerBridge Tool which was a derivative of the ManilaBloggerBridge Tool. I'm giving all of this code to Userland to incorporate this into a future version of Radio."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111868002796067958?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111868002796067958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111868002796067958'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/06/radioatombridge.html' title='RadioAtomBridge'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111447394350789208</id><published>2005-04-25T16:57:00.000-07:00</published><updated>2005-04-25T17:05:43.506-07:00</updated><title type='text'>FotoFlix</title><content type='html'>The folks at &lt;a href="http://www.fotoflix.com/"&gt;FotoFlix&lt;/a&gt; just wrote in to let us know that they've added &lt;a href="http://www.fotoflix.com/?action=home.fotoflix_benefits&amp;amp;content=fotoflix"&gt;Blogger support&lt;/a&gt; to their photo-sharing site.&lt;br /&gt;&lt;blockquote&gt;"We are very excited to offer this service and Blogger is the first blogging site which we are supporting directly using an API... We are anticipating for it to be well received due to it's uniqueness and simplicity."&lt;/blockquote&gt; It's great to see innovative new Atom API uses from the web community!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111447394350789208?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111447394350789208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111447394350789208'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/04/fotoflix.html' title='FotoFlix'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111352168230096262</id><published>2005-04-14T16:33:00.000-07:00</published><updated>2005-04-14T16:34:42.300-07:00</updated><title type='text'>Textamerica API</title><content type='html'>Another webapp/blogging API with which to tinker: &lt;a href="http://textamerica.com/api.aspx"&gt;Textamerica Developer API&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111352168230096262?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111352168230096262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111352168230096262'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/04/textamerica-api.html' title='Textamerica API'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111264891210768102</id><published>2005-04-04T14:02:00.000-07:00</published><updated>2005-04-04T15:00:06.503-07:00</updated><title type='text'>JavaScript Blog</title><content type='html'>&lt;a href="http://scottandrew.com/"&gt;Scott Andrew&lt;/a&gt; is blogging all about &lt;a href="http://www.adaptivepath.com/publications/essays/archives/000385.php"&gt;AJAX&lt;/a&gt; and JavaScript at &lt;a href="http://jszen.blogspot.com/"&gt;The Strange Zen of JavaScript&lt;/a&gt;. Just added it to the blogroll...&lt;br /&gt;&lt;br /&gt;[via &lt;a href="http://philringnalda.com/blog/2005/04/szoj_aok.php"&gt;PhilR&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111264891210768102?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111264891210768102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111264891210768102'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/04/javascript-blog.html' title='JavaScript Blog'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111224631681433810</id><published>2005-03-30T21:13:00.000-08:00</published><updated>2005-03-30T21:20:17.943-08:00</updated><title type='text'>Zoundry Updated</title><content type='html'>We just heard from Lawrence Lee of &lt;a href="http://zoundry.com/"&gt;Zoundry&lt;/a&gt; that their &lt;a href="http://zoundry.com/software.html"&gt;Blog Writer app&lt;/a&gt; has been updated to support SSL and Blogger's &lt;a href="http://code.blogspot.com/archives/atom-docs.html"&gt;AtomAPI&lt;/a&gt;. It's a Windows app for doing WYSIWYG blogging from the desktop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111224631681433810?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111224631681433810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111224631681433810'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/03/zoundry-updated.html' title='Zoundry Updated'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111143187474822493</id><published>2005-03-21T10:59:00.000-08:00</published><updated>2005-03-21T11:04:34.750-08:00</updated><title type='text'>PocketBlogger Updated</title><content type='html'>Steve Novoselac just wrote in to let us know that &lt;a href="http://www.pocketblogger.net/"&gt;PocketBlogger&lt;/a&gt;'s been &lt;a href="http://www.pocketblogger.net/2005/03/all-day.html"&gt;updated&lt;/a&gt; to support Blogger's &lt;a href="http://code.blogspot.com/archives/atom-docs.html"&gt;Atom API&lt;/a&gt; and secure authentication via SSL.&lt;br /&gt;&lt;br /&gt;PocketBlogger is a PocketPC Blogger client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111143187474822493?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111143187474822493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111143187474822493'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/03/pocketblogger-updated.html' title='PocketBlogger Updated'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111110985105075559</id><published>2005-03-17T17:31:00.000-08:00</published><updated>2005-03-17T17:37:31.053-08:00</updated><title type='text'>43Things API</title><content type='html'>Our friends at &lt;a href="http://robotcoop.com/"&gt;The Robot Co-op&lt;/a&gt; just released &lt;a href="http://www.43things.com/about/view/web_service_api"&gt;Web Services&lt;/a&gt;. for &lt;a href="http://43things.com/"&gt;43Things&lt;/a&gt;. Fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111110985105075559?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111110985105075559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111110985105075559'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/03/43things-api.html' title='43Things API'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111108628280166076</id><published>2005-03-17T10:46:00.000-08:00</published><updated>2005-03-17T11:04:42.803-08:00</updated><title type='text'>Google Code</title><content type='html'>&lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt; launched today; here's &lt;a href="http://egofood.blogspot.com/"&gt;DiBona&lt;/a&gt;'s &lt;a href="http://www.google.com/googleblog/2005/03/codegooglecom-new-open-source.html"&gt;Google Blog post&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;We're very happy to be launching &lt;a href="http://code.google.com/"&gt;code.google.com&lt;/a&gt; today. To begin, we're releasing some developer-oriented libraries and tools. Google developers use these every day to make their programs easier to debug, faster, and more reliable. A number of engineers have used their 20% time to ready these tools for release, and will also help build the communities we hope will form around them.&lt;br /&gt;&lt;br /&gt;We're also  featuring links to all current &lt;a href="http://code.google.com/apis.html"&gt;Google APIs&lt;/a&gt;. Come  check them out and if you'd like more information, please join our &lt;a href="http://groups-beta.google.com/group/codesite-discuss"&gt;group&lt;/a&gt;,  subscribe to our &lt;a href="http://code.google.com/"&gt;feeds&lt;/a&gt;, or if you're shy, &lt;a href="mailto:code@google.com"&gt;email&lt;/a&gt; us directly.  And happy coding!&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111108628280166076?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111108628280166076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111108628280166076'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/03/google-code.html' title='Google Code'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111099999430575630</id><published>2005-03-16T10:54:00.000-08:00</published><updated>2005-03-16T11:06:34.306-08:00</updated><title type='text'>Ecto</title><content type='html'>Nice! Adriaan just released an &lt;a href="http://ecto.kung-foo.tv/archives/001325.php"&gt;updated version of Ecto&lt;/a&gt; for both Mac and Windows, which supports SSL authentication.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111099999430575630?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111099999430575630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111099999430575630'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/03/ecto.html' title='Ecto'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-111074986653137431</id><published>2005-03-14T17:25:00.000-08:00</published><updated>2005-03-14T15:26:38.433-08:00</updated><title type='text'>Atom API Update</title><content type='html'>A long-overdue Atom API update just went live. Aside from lots of bug fixes, full i18n support is present via UTF-8, and authentication now works securely via Basic HTTP Auth over SSL at the Atom endpoint: &lt;code&gt;https://www.blogger.com/atom&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.blogspot.com/archives/atom-docs.html"&gt;Documentation&lt;/a&gt; is live too, and feel free to post to the &lt;a href="http://groups-beta.google.com/group/bloggerDev/"&gt;BloggerDev list&lt;/a&gt; if you need technical assistance. Be sure to search the list archives first however, in case your issue has already been addressed. Note that Post Titles now work seemlessly &lt;a href="http://code.blogspot.com/archives/atom-docs.html#create-post"&gt;via the API&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We've already been testing an updated version of Adriaan Tijsseling's &lt;a href="http://ecto.kung-foo.tv/"&gt;Ecto&lt;/a&gt;, and we'd love to hear from anyone else making progress with their Blogger/Atom apps. You can email us at support AT blogger.com, subject=BDN.&lt;br /&gt;&lt;br /&gt;Thanks for your patience as we've worked on shipping this API milestone!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-111074986653137431?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111074986653137431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/111074986653137431'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/03/atom-api-update.html' title='Atom API Update'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110565534641209930</id><published>2005-01-13T14:23:00.000-08:00</published><updated>2005-01-13T14:35:46.793-08:00</updated><title type='text'>Desktop Clients Updated</title><content type='html'>&lt;a href="http://wbloggar.com/marcelo/blog/"&gt;Marcelo Cabral&lt;/a&gt; just updated &lt;a href="http://wbloggar.com/"&gt;w.bloggar to v4.0&lt;/a&gt;, and &lt;a href="http://blogjet.blogware.com/blog"&gt;Dmitry Chestnykh&lt;/a&gt; released &lt;a href="http://blogjet.com/"&gt;BlogJet v1.5&lt;/a&gt; &amp;mdash; both now support &lt;a href="http://code.blogspot.com/2004/10/apis-and-ssl.html"&gt;SSL&lt;/a&gt; for posting to Blogger blogs.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110565534641209930?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110565534641209930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110565534641209930'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2005/01/desktop-clients-updated.html' title='Desktop Clients Updated'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110367273201576192</id><published>2004-12-21T15:40:00.000-08:00</published><updated>2005-01-13T14:30:06.836-08:00</updated><title type='text'>Nokia Lifeblog spec</title><content type='html'>The &lt;a href="http://cognections.typepad.com/lifeblog/2004/12/lifeblog_postin.html"&gt;Lifeblog Posting Protocol&lt;/a&gt; spec is available for &lt;a href="http://cognections.typepad.com/lifeblog/files/lifeblog_posting_protocol_specification_1.0.pdf"&gt;download&lt;/a&gt; from Nokia:&lt;br /&gt;&lt;blockquote&gt;"This is the technical document that explains how we use &lt;a href="http://atomenabled.org/developers/api/atom-api-spec.php"&gt;Atom&lt;/a&gt; to post multimedia content online. Use this document to figure out how to adapt your servers to use &lt;a href="http://www.nokia.com/nokia/0,,54628,00.html"&gt;Lifeblog 1.5&lt;/a&gt;."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110367273201576192?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110367273201576192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110367273201576192'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2004/12/nokia-lifeblog-spec.html' title='Nokia Lifeblog spec'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110356578994112289</id><published>2004-12-20T10:00:00.000-08:00</published><updated>2005-01-13T14:29:42.906-08:00</updated><title type='text'>MarsEdit to get Atom API support</title><content type='html'>Atom support for the excellent &lt;a href="http://ranchero.com/marsedit/"&gt;MarsEdit&lt;/a&gt; is on the way, &lt;a href="http://inessential.com/?comments=1&amp;amp;postid=3005"&gt;according to Brent&lt;/a&gt;:&lt;blockquote&gt;"MarsEdit doesn’t yet support titles for Blogger."&lt;br /&gt;&lt;br /&gt;"It will—but it requires implementing the Atom weblog editing API first. This is MarsEdit’s top priority."&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110356578994112289?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110356578994112289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110356578994112289'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2004/12/marsedit-to-get-atom-api-support.html' title='MarsEdit to get Atom API support'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110246209280102703</id><published>2004-12-07T15:17:00.000-08:00</published><updated>2005-01-13T13:30:52.346-08:00</updated><title type='text'>BuzzNet Developers</title><content type='html'>Our friends over at BuzzNet recently launched their &lt;a href="http://www.buzznet.com/developers/"&gt;Developer Network&lt;/a&gt;. Along with the usual stuff (&lt;a href="http://www.buzznet.com/developers/apidocs/"&gt;docs&lt;/a&gt;, &lt;a href="http://www.buzznet.com/developers/feeds/"&gt;feed list&lt;/a&gt;), they've also got a nice Community Wishlist of apps &amp;amp; tools for folks to hack on. We're assembling a similar list for Blogger's API — stay tuned for details.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110246209280102703?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110246209280102703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110246209280102703'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2004/12/buzznet-developers.html' title='BuzzNet Developers'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110073938031263599</id><published>2004-10-18T15:41:00.000-07:00</published><updated>2004-11-17T16:56:20.313-08:00</updated><title type='text'>APIs and SSL</title><content type='html'>Remain calm and do not panic. We're switching to a more secure Google-wide account system. What does this mean? Basically, it means that our APIs are all going to be available over SSL. We're not turning off the old API endpoints, but tools not using SSL won't be able to send usernames and passwords over the clear. Which pretty much means they will seem broken.&lt;br /&gt;&lt;br /&gt;The good news is, we're not just gonna leave you hanging. We're building a special PIN system for use with non SSL tools. Blogger 1.0, 2.0, and Atom 0.3 are all going to be available over SSL. Since our Atom 0.3 support is still beta, we will switch to only support HTTP Basic Authentication over SSL. As our Blogger API support is considered stable, we will support both regular passwords over SSL and a new PIN system over non-SSL connections.&lt;br /&gt;&lt;br /&gt;So users of non SSL tools will be able to visit &lt;a onclick="return op.js.OpenExtLink(window,event,this)" href="http://blogger.com/" target="_blank"&gt;Blogger.com&lt;/a&gt; and get a special password but you'll agree this is not optimal. What we recommend and encourage is that you, gentle Blogger developer, switch to an XML-RPC toolkit that can do SSL and make the appropriate changes to your fine offerings.&lt;br /&gt;&lt;br /&gt;We're planning on initiating this move in a few weeks and we'll work to make sure our user base understands what's going on as well. We'll keep you updated on the BDN blog with any significant news. Please accept our apologies if this switch messes up your weekend or causes you any trouble but ultimately, it's for the best--think of the&lt;br /&gt;possibilities!&lt;br /&gt;&lt;br /&gt;[originally posted by &lt;a href="http://www.blogger.com/profile/27246"&gt;Shellen&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110073938031263599?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073938031263599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073938031263599'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2004/10/apis-and-ssl.html' title='APIs and SSL'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110073921563937877</id><published>2004-01-22T17:24:00.000-08:00</published><updated>2004-11-17T16:53:35.640-08:00</updated><title type='text'>Blogger gets AtomEnabled</title><content type='html'>&lt;p&gt;Today, we launched support for Atom in Blogger. This means that all Blogger users now have the ability to syndicate their blog content in a rich XML format (see &lt;a href="http://help.blogger.com/bin/answer.py?answer=697&amp;topic=36" title="What is Atom? | Knowledge Base article"&gt;What is Atom?)&lt;/a&gt;. In addition, we have rolled out beta support for &lt;a href="http://www.atomenabled.org/developers/"&gt;the Atom API&lt;/a&gt;. This means a more robust API for you to use in creating new blogging applications. Some of the benefits of the new API are:&lt;ul&gt;&lt;li&gt;support for titles&lt;li&gt;tighter integration with the&lt;br /&gt;syndication format and editing tools&lt;li&gt;extensibility&lt;li&gt; easy-to-use WSDL file to work with most SOAP toolkits&lt;li&gt;higher security authentication using WSSE&lt;li&gt;more robust Blogger endpoint&lt;li&gt;support for SOAP and REST&lt;/ul&gt;&lt;/p&gt;&lt;p&gt;More documentation will follow in the next few weeks as the Atom API moves to version 1.0. In the meanwhile, you may want to try the &lt;a href="http://www.atomenabled.org/developers/api/SampleClient.cs"&gt;SOAP Atom API client in C#&lt;/a&gt; and this &lt;a href="http://www.atomenabled.org/developers/api/AtomAPI.wsdl"&gt;WSDL file&lt;/a&gt;. You should be able to drop this WSDL file into most developer tools. You can test this client against our Atom API endpoint at: &lt;code&gt;http://www.blogger.com/atom/&lt;/code&gt;. You should enter the endpoint where it currently says &lt;code&gt;http://localhost/AtomApi.asmx&lt;/code&gt; in the WSDL. For more general Atom information visit &lt;a href="http://www.atomenabled.org"&gt;AtomEnabled.org&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;As always, &lt;a href="javascript:var e1='tr&amp;#097;%6b%6b%65&amp;#110;%2e%63%6f%6d?%73&amp;#117;b%6a&amp;#101;%63%74=BDN',e2='&amp;#109;&amp;#097;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#058;%20', e3='&amp;#098;%6cog%67%65&amp;#114;';var e0=e2+e3+'%40'+e1;(window.location?window.location.replace(e0):document.write(e0));" title="&amp;#102;&amp;#101;&amp;#101;&amp;#100;&amp;#098;&amp;#097;&amp;#099;&amp;#107;&amp;#032;&amp;#097;&amp;#110;&amp;#100;&amp;#032;&amp;#099;&amp;#111;&amp;#109;&amp;#109;&amp;#101;&amp;#110;&amp;#116;&amp;#115;&amp;#032;&amp;#097;&amp;#112;&amp;#112;&amp;#114;&amp;#101;&amp;#114;&amp;#101;&amp;#099;&amp;#105;&amp;#097;&amp;#116;&amp;#101;&amp;#100;"&gt;&amp;#102;&amp;#101;&amp;#101;&amp;#100;&amp;#098;&amp;#097;&amp;#099;&amp;#107;&amp;#032;&amp;#097;&amp;#110;&amp;#100;&amp;#032;&amp;#099;&amp;#111;&amp;#109;&amp;#109;&amp;#101;&amp;#110;&amp;#116;&amp;#115;&amp;#032;&amp;#097;&amp;#114;&amp;#101;&amp;#032;&amp;#097;&amp;#112;&amp;#112;&amp;#114;&amp;#101;&amp;#099;&amp;#105;&amp;#097;&amp;#116;&amp;#101;&amp;#100;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;[originally posted by &lt;a href="http://www.blogger.com/profile/27246"&gt;Shellen&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110073921563937877?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073921563937877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073921563937877'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2004/01/blogger-gets-atomenabled.html' title='Blogger gets AtomEnabled'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110073914729288573</id><published>2003-11-30T21:44:00.000-08:00</published><updated>2004-11-17T16:52:27.293-08:00</updated><title type='text'>Atom feed limited beta</title><content type='html'>Since the Atom syndication format is nearing a spec revision, we thought we should point to examples of the feeds we are currently planning to output via Blogger. Some of the Blogger team members have graciously agreed to use their personal blogs as Atom syndication test blogs, below are a handful for testing purposes. Please remember that these are not the final output, probably close though, and should validate at &lt;a href="http://www.feedvalidator.org"&gt;FeedValidator.org&lt;/a&gt;. Enjoy and please leave any comments on the &lt;a href="http://www.imc.org/atom-syntax/index.html"&gt;Atom-syntax list&lt;/a&gt;.&lt;ul&gt;&lt;li&gt;Jason Goldman : &lt;a href="http://www.goldtoe.net/atom.xml"&gt;http://www.goldtoe.net/atom.xml&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Steve Jenson : &lt;a href="http://www.saladwithsteve.com/atom.xml"&gt;http://www.saladwithsteve.com/atom.xml&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Jason Shellen : &lt;a href="http://www.shellen.com/atom.xml"&gt;http://www.shellen.com/atom.xml&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Evan Wiliams : &lt;a href="http://www.evhead.com/atom.xml"&gt;http://www.evhead.com/atom.xml&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Next step: Atom syndication for you!&lt;br /&gt;&lt;br /&gt;[originally posted by &lt;a href="http://www.blogger.com/profile/27246"&gt;Shellen&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110073914729288573?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073914729288573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073914729288573'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2003/11/atom-feed-limited-beta.html' title='Atom feed limited beta'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110073826724862133</id><published>2003-07-01T21:50:00.000-07:00</published><updated>2004-11-17T16:38:11.750-08:00</updated><title type='text'>Proposal for post creation request</title><content type='html'>Misha has put up &lt;a href="http://www.intertwingly.net/wiki/pie/BloggerProposals"&gt;a proposal&lt;/a&gt; on the new API wiki for how a post request might work. Feedback welcomed there.&lt;br /&gt;&lt;br /&gt;[originally posted by &lt;a href="http://www.blogger.com/profile/1"&gt;Ev&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110073826724862133?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073826724862133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073826724862133'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2003/07/proposal-for-post-creation-request.html' title='Proposal for post creation request'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110073822176896300</id><published>2003-07-01T20:20:00.000-07:00</published><updated>2004-11-17T16:37:01.766-08:00</updated><title type='text'>Blogger API Update</title><content type='html'>Here is an update for developers interested in writing tools that integrate with Blogger. &lt;br /&gt;&lt;br /&gt;First, a little background: As you may know, &lt;a href="http://www.blogger.com/developers/api/1_docs/"&gt;the original Blogger API&lt;/a&gt; was put up almost two years ago, with the disclaimer that it was in an "experimental" and "alpha" state with no guarantees about its future. It was designed hastily by myself in a couple days, and we had very little resources to do much with it at the time.&lt;br /&gt;&lt;br /&gt;Despite these drawbacks, people built cool stuff and other blogging tool vendors supported the Blogger API for compatibility.&lt;br /&gt;&lt;br /&gt;It is now (past due) time to do a major revamp of our API. In fact, we've been working on the next version for quite a while. We posted a preliminary spec to our developers list late last year and got a lot of feedback. But we were not that confident in the direction and still didn't really have the extra cycles necessary to put into to it&amp;#151;until recently.&lt;br /&gt;&lt;br /&gt;As &lt;a href="http://www.blogger.com/developers/2003_06_01_archive.pyra#105649782335556781"&gt;the first post&lt;/a&gt; to this blog (which also inaugurated this new developer's section of blogger.com) indicates, we became very interested in a new proposal that has recently been in the works by a bunch of smart engineer-types of the blogging world. We felt, if it worked out, this new spec (code-named "Atom"), would solve a lot of potential problems with our API, as well as with the blog syndication format we support, RSS. It would do so in an elegant way, specifically designed for blogging. And, even better, a way that was unified with other major blogging tool vendors.&lt;br /&gt;&lt;br /&gt;Consequently, our developers got involved with the Atom project to make sure we felt it would work for our needs, as well as everyone else's. We are very pleased with the technical progress made so far and are committed to help the project reach conclusion.&lt;br /&gt;&lt;br /&gt;What this means for Blogger developers:&lt;ol&gt;&lt;li&gt; &lt;b&gt;We will continue to support the Blogger API 1.0.&lt;/b&gt; (Technically, we are supporting it for the first time&amp;#151;as in, taking off the disclaimers and making sure it is up and running more reliably.) In fact, we have written a new implementation of it, along with the new, more robust, Blogger codebase. However, that spec is frozen and will not be developed further. &lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;We will not be implementing or supporting the Blogger API 2.0.&lt;/b&gt; We apologize for having that out there in a semi-final looking spec for so long. We know it was frustrating for developers. But please forget that ever happened.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;We are moving away from XML-RPC.&lt;/strong&gt; If you choose to take advantage of the capabilities of the new API, you will need to use SOAP instead of XML-RPC. This was a difficult decision (made collectively by the designers of Atom), because there is a lot of investment in XML-RPC in the blogging tool space, and it is great for getting things done quickly. But we felt the technical advantages offered by SOAP were worth the effort. (See SixApart link below for details.)&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;b&gt;The syndication format and API format will be unified.&lt;/b&gt; This is one of the nice aspects of Atom that could not have been easily accomplished without starting from scratch. It generally simplifies getting data into and out of blogging apps.&lt;br /&gt;&lt;br /&gt;&lt;li&gt; &lt;strong&gt;Interoperability.&lt;/strong&gt; This is a biggie. At least two other major blogging tool and service companies (&lt;a href="http://www.sixapart.com"&gt;SixApart&lt;/a&gt; and &lt;a href="http://www.livejournal.com"&gt;Live Journal&lt;/a&gt;) have pledged their support for this new initiative, and we're working with them (as well as others) to define the spec up-front. This means your tools will be usable by as many people as possible, with minimal effort. And since the API/format will be vendor-neutral, no one's needs can be more important than users and developers.&lt;/ol&gt;&lt;br /&gt;In general, our goal is to make it as painless as possible to develop neat stuff that plugs into Blogger, and we feel we are very close to having the best direction for that to happen. The technical folks in the blogging world have learned a lot of the past few years about RSS and the blogging APIs&amp;#151;about what works well and what doesn't. And, despite the efforts that have gone into certain directions, we feel it'd be unfortunate this early in the game to be married to a certain direction just because we started out that way when we didn't know as much.&lt;br /&gt;&lt;br /&gt;As mentioned, the project is still in the works, and there is no final spec, but there are lots of  smart people working on getting it right. And it's an open process: You can get involved by visiting &lt;a href="http://www.intertwingly.net/wiki/pie/RoadMap"&gt;the wiki&lt;/a&gt;, posting to your blogs and mailing lists, etc.&lt;br /&gt;&lt;br /&gt;Lastly, I didn't go into much of the technical reasons behind the decisions in the Atom project here. But they have been well-articulated &lt;a href="http://www.sixapart.com/log/2003/06/why_we_need_ech.shtml"&gt;by Ben Trott&lt;/a&gt; of SixApart. I  encourage checking out that if you're interested.&lt;br /&gt;&lt;br /&gt;Thanks for your patience (and contributions) in getting this all worked out.&lt;br /&gt;&lt;br /&gt;[originally posted by &lt;a href="http://www.blogger.com/profile/1"&gt;Ev&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110073822176896300?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073822176896300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110073822176896300'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2003/07/blogger-api-update.html' title='Blogger API Update'/><author><name>Eric</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://vedana.net/media/eric-hat-250.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3213900.post-110083154920771884</id><published>2003-06-24T16:37:00.001-07:00</published><updated>2004-12-07T10:19:18.213-08:00</updated><title type='text'>The future of blogging APIs?</title><content type='html'>Sam Ruby and friends have been working on a new format and API for content syndication and editing. Visit the &lt;a href="http://www.intertwingly.net/wiki/pie/RoadMap"&gt;Log Format Roadmap&lt;/a&gt; to view the details and current supporters of this effort. We at &lt;a href="http://www.blogger.com/"&gt;Blogger&lt;/a&gt; would like to cast our vote in favor of this process and commend Sam on his efforts. We are spending a considerable amount of time thinking about how this will integrate with Blogger and plan to become more active participants in the discussion. We have the utmost faith that with his direction this will become a format and API that we will support in our current and future product line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3213900-110083154920771884?l=code.blogger.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110083154920771884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3213900/posts/default/110083154920771884'/><link rel='alternate' type='text/html' href='http://code.blogger.com/2003/06/future-of-blogging-apis_24.html' title='The future of blogging APIs?'/><author><name>Jason</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_arQMNg6BEiE/SO0nuHnPv8I/AAAAAAAAMd8/Cj9alLvcrc0/S220/fca37395_Jason_Shellen_0502.jpg'/></author></entry></feed>
