Pagine

sabato 3 luglio 2010

Blogger API Overview

The Blogger Data API allows client applications to view and update Blogger content in the form of Google Data API feeds. Your client application can use the Data API to create new blog posts, edit or delete existing posts, and query for posts that match particular criteria.

Here are some of the things you can do with the Blogger Data API:

* Add a running list of blog posts and comments to a site.
* Create a desktop application or plugin that allows users to create and post entries from the desktop.
* Create a blog aggregator application.


How do I start?

If you're new to the Blogger Data API, here's how we recommend you get started:

1. Get familiar with the Google Data APIs.
2. Read the Blogger Data API Developer's Guide.
3. Refer to the Reference Guide as needed.

Protocol Basics

This document describes the basics of the Google Data Protocol used by many Google APIs, including examples of what a query looks like, what results look like, and so on.

For more information about the Google Data Protocol, see the Developer's Guide overview page and the Protocol Reference.
Contents

1. Audience
2. Examples
1. Requesting a feed or other resource
2. Inserting a new entry
3. Searching for a string
4. Updating an entry
5. Deleting an entry
6. Requesting partial feeds or entries (Experimental ) New!
7. Updating specific fields (Experimental ) New!
3. Additional resources

Audience

This document is intended for anyone wanting to understand the general idea of the XML format and protocol used by the Google Data APIs.

Even if you just want to write code that uses the language-specific client libraries, you might want to read this document, to understand what's going on beneath the client-library abstraction layer.

This document assumes that you understand the basics of XML, namespaces, syndicated feeds, and the GET, POST, PUT, and DELETE requests in HTTP, as well as HTTP's concept of a "resource." For more information about those things, see the Additional resources section of this document.

This document doesn't rely on any particular programming language; your client can interact with the server using any programming language that lets you issue HTTP requests and parse XML-based responses.

If you want to try the examples in this document without writing any code, you may find the command-line utilities cURL or Wget useful; for more information, see the manual pages for those utilities or the document on Using cURL to interact with services that use the Google Data Protocol.
Examples

The following examples show HTTP requests you might send to a generic service using the Google Data Protocol API protocol directly, and the results you might receive. For examples of how to send the requests using various programming languages, see the language-specific samples and client libraries. For information about using the Google Data Protocol with specific Google services, see the service-specific documentation.
Requesting a feed or other resource

Assume there's a feed called /myFeed, and assume that it currently doesn't happen to contain any entries. To see it, send the following HTTP request to the server:

GET /myFeed

The server responds:

200 OK


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='W/"C0QBRXcycSp7ImA9WxRVFUk."'>
Foo
2006-01-23T16:25:00-08:00
http://www.example.com/myFeed

Jo March




Note that although the feed doesn't contain any entries, it does contain metadata, such as a title and an author's name. It also contains a version identifier, in the form of an HTTP ETag.
Inserting a new entry

To create a new entry, send a POST request, and supply the XML representation of the new entry:

POST /myFeed




Elizabeth Bennet
liz@gmail.com

Entry 1
This is my entry


Note that you don't supply the standard Atom , , or elements; the server creates those in response to your POST request. Also note that the author of a feed doesn't have to be the same person as the author of an entry.

The server responds:

201 CREATED


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='"CUUEQX47eCp7ImA9WxRVEkQ."'>
http://www.example.com/id/1

2006-01-23T16:26:03-08:00

Elizabeth Bennet
liz@gmail.com

Entry 1
This is my entry


Searching for a string

To do a full-text search for a particular string, when using a service that supports full-text searches, send a GET request with the q parameter. For more information about query parameters, see Query requests in the protocol reference document.

GET /myFeed?q=This

The server responds with a feed containing all the entries that match the search string This. (In this case there's only one.)

200 OK


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='W/"S0wCTlpIIip7ImA0X0QI"'>
Foo
2006-01-23T16:26:03-08:00
http://www.example.com/myFeed

Jo March



http://www.example.com/id/1

2006-01-23T16:26:03-08:00

Elizabeth Bennet
liz@gmail.com

Entry 1
This is my entry



Updating an entry

To update an existing entry, you need to do the following steps.

1. Retrieve the entry you want to update.
2. Modify it as desired.
3. Send a PUT request, with the updated entry in the message body, to the entry's edit URI. The edit URI appears in the previous example as the href attribute of the element.

You also have to specify the original entry's ETag, to ensure that you don't overwrite anyone else's changes.

In the following example, we're changing the entry's text from its old value ("This is my entry") to a new value ("This is my first entry."):

PUT /myFeed/1/1/


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='"CUUEQX47eCp7ImA9WxRVEkQ."'>
http://www.example.com/id/1

2006-01-23T16:28:05-08:00

Elizabeth Bennet
liz@gmail.com

Entry 1
This is my first entry.


The server responds:

200 OK


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='"FkkOQgZGeip7ImA6WhVR"'>
http://www.example.com/id/1

2006-01-23T16:28:05-08:00

Elizabeth Bennet
liz@gmail.com

Entry 1
This is my first entry.


Note that the ETag has changed. For more information about versions of resources, see the Resource versioning (ETags) section of the protocol reference document.

To see the new entry in context, request the entire resource again:

GET /myFeed

The server responds:

200 OK


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='W/"D08FQn8-eil7ImA9WxZbFEw."'>
Foo
2006-01-23T16:28:05-08:00
http://www.example.com/myFeed

Jo March



http://www.example.com/id/1

2006-01-23T16:28:05-08:00

Elizabeth Bennet
liz@gmail.com

Entry 1
This is my first entry.




Note: If your firewall does not allow PUT, then do an HTTP POST and set the method override header as follows:

X-HTTP-Method-Override: PUT

Deleting an entry

To delete an existing entry, send a DELETE request, using the entry's edit URI (as provided by the server in the previous example).

If your firewall does not allow DELETE, then do an HTTP POST and set the method override header as follows:

X-HTTP-Method-Override: DELETE

When you delete an entry, you can choose whether to do a conditional delete (only delete if the entry hasn't changed since last time you retrieved it) or an unconditional delete. For more information, see the Resource versioning (ETags) section of the protocol reference document. To do an unconditional delete, set the following HTTP header:

If-Match: *

The following example deletes an entry (if headers are set appropriately):

DELETE /myFeed/1/

The server responds:

200 OK

Do another GET to see that the feed now contains no entries:

GET /myFeed

The server responds with a feed that contains nothing but metadata:

200 OK


xmlns:gd='http://schemas.google.com/g/2005'
gd:etag='W/"D0cERnk-eip7ImA9WBBXGEg."'>
Foo
2006-01-23T16:30:11-08:00
http://www.example.com/myFeed

Jo March




If the deletion fails, then the server responds with an error code. For more information, see HTTP status codes in the protocol reference document.
Requesting partial feeds or entries (Experimental )

In contrast to the simple example feed shown in this document, in practice, feeds can be quite complex. With some APIs, you can ask for only the elements or attributes of interest, instead of the full resource representation. When you avoid retrieving and parsing unneeded data, you can significantly improve the efficiency of your client application.

To request a partial response, use the fields query parameter to specify which elements or attributes you want returned. For more information, see Partial response in the protocol reference document.

The following example requests only the feed ID, and the author and title for each feed entry,

GET /myFeed?fields=id,entry(author)

The server responds:

200 OK


xmlns:gd='http://schemas.google.com/g/2005'>
http://www.example.com/myFeed


Elizabeth Bennet
liz@gmail.com

Entry 1



Elizabeth Bennet
liz@gmail.com

Entry 2



You can use the fields parameter with any kind of request that returns data. In addition to GET, this includes POST, and PUT (as well as PATCH, which is used for making partial update requests).

Note: The fields query parameter only controls the data sent back in response to a request; it does not affect the data that you must provide in the body of a PUT, POST, or PATCH request.

Examples for POST and PUT are shown below.

* When you make a POST request for a partial response, you must still provide the same data as described in Inserting a new entry. The following example requests a partial response that contains only the title of the newly created entry:

POST /myFeed?fields=title

...data...

The server responds:

200 OK



Entry 1


* When you make a PUT request for a partial response, you must still provide a modified version of the full resource representation, as described in Updating an entry. The following example requests a partial response that contains only the new ETag value of the modified entry:

PUT /myFeed/1/1?fields=@gd:etag

...data...

The server responds:

200 OK


gd:etag='"FkkOQgZGeip7ImA6WhVR"'/>

Updating specific fields (Experimental )

If the API you are using supports partial response and has editable fields, you can also avoid sending unnecessary data when modifying an entry. Partial update allows you to send data only for the fields that you want to change.

To use partial update, you send a PATCH request to the same edit URI you use with PUT. The data that you send with PATCH must follow certain conventions. However, the semantics are flexible enough for you to replace data in the target resource, add to it, or even make deletions from it, all with a single request.

Note: As with PUT, you have to specify the original entry's ETag, to make sure you don't overwite anyone else's changes.

For more information on PATCH and its semantics, see Partial update in the protocol reference document.

This example shows a partial update request that modifies the entry's title:

PATCH /myfeed/1/1/

xmlns:gd='http://schemas.google.com/g/2005'
gd:etag="EksPTg1Bfyp7IWA6WhJT"
gd:fields='title'>
New Title


When the server receives a PATCH request, it first removes any fields specified by the entry's gd:fields attribute (if present); then it merges any data provided in the request body with the target resource. In this example, the title element is first removed from the target resource; then the new title value is merged. Effectively, this request replaces the old title with the new one.

Note, however, that the semantics of PATCH are to merge the partial representation into the existing resource. You don't always have to remove a field to update its value.

* If field can only exist once in the target entry then, on merging, the field in the partial representation overwrites the corresponding field in the target entry.
* If the field can exist more than once in the target entry then, on merging, the partial field is added to the target entry.

The difference between how repeating and non-repeating fields are merged is shown by the next example, which adds a new title and author to the entry without using the gd:fields attribute to remove either of them first.

PATCH /myfeed/1/1/

xmlns:gd='http://schemas.google.com/g/2005'
gd:edtag="EksPTg1Bfyp7IWA6WhJT">
A new title

Fitzwilliam Darcy
darcy@gmail.com



Since the partial entry representation has no gd:fields attribute, no fields are removed. However, the new values for the and <author> elements are merged with the target resource: <br /> <br /> * Because Atom allows only only one title per entry, the new title overwrites the existing value. <br /> * Because Atom allows multiple authors per entry, the new author is appended to the list of author elements already in the target resource. <br /> <br /> Note: Not all APIs conform to the Atom standard. For example, some APIs allow only a single <author> element per entry; others inherit the entry author from the feed level, making the field read-only. <br /> <br />After the server processes a valid PATCH request, it returns an HTTP 200 status code, along with a copy of the full representation of the updated entry. <br /> <br />If you prefer to have the server return only certain elements or attributes, you can use the fields query parameter with PATCH to request a partial response. <br />Additional resources <br /> <br />You may find the following third-party documents useful: <br /> <br /> * Overview of Atom from IBM <br /> * HTTP 1.1 method definitions; specification for GET, POST, PUT, and DELETE <br /> * HTTP 1.1 status code definitions <br /> * How to Create a REST Protocol <br /> * Building Web Services the REST Way <br /> * A Technical Introduction to XML <br /> * XML Namespaces by Example <br /> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-author vcard'> Pubblicato da <span class='fn'>Cicerone 80</span> </span> <span class='post-timestamp'> alle <a class='timestamp-link' href='https://creareunbloginteressante.blogspot.com/2010/07/blogger-api-overview.html' rel='bookmark' title='permanent link'><abbr class='published' title='2010-07-03T08:21:00-07:00'>08:21</abbr></a> </span> <span class='post-comment-link'> </span> <span class='post-icons'> <span class='item-control blog-admin pid-1621670977'> <a href='https://www.blogger.com/post-edit.g?blogID=1943641633914725031&postID=6998128883450967531&from=pencil' title='Modifica post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <div class='post-share-buttons'> <a class='goog-inline-block share-button sb-email' href='https://www.blogger.com/share-post.g?blogID=1943641633914725031&postID=6998128883450967531&target=email' target='_blank' title='Invia tramite email'><span class='share-button-link-text'>Invia tramite email</span></a><a class='goog-inline-block share-button sb-blog' href='https://www.blogger.com/share-post.g?blogID=1943641633914725031&postID=6998128883450967531&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='Postalo sul blog'><span class='share-button-link-text'>Postalo sul blog</span></a><a class='goog-inline-block share-button sb-twitter' href='https://www.blogger.com/share-post.g?blogID=1943641633914725031&postID=6998128883450967531&target=twitter' target='_blank' title='Condividi su X'><span class='share-button-link-text'>Condividi su X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://www.blogger.com/share-post.g?blogID=1943641633914725031&postID=6998128883450967531&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Condividi su Facebook'><span class='share-button-link-text'>Condividi su Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://www.blogger.com/share-post.g?blogID=1943641633914725031&postID=6998128883450967531&target=pinterest' target='_blank' title='Condividi su Pinterest'><span class='share-button-link-text'>Condividi su Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> </span> </div> <div class='post-footer-line post-footer-line-3'><span class='post-location'> </span> </div> </div> </div> <div class='comments' id='comments'> <a name='comments'></a> <h4>Nessun commento:</h4> <div id='Blog1_comments-block-wrapper'> <dl class='avatar-comment-indent' id='comments-block'> </dl> </div> <p class='comment-footer'> <div class='comment-form'> <a name='comment-form'></a> <h4 id='comment-post-message'>Posta un commento</h4> <p> </p> <a href='https://www.blogger.com/comment/frame/1943641633914725031?po=6998128883450967531&hl=it&saa=85391&origin=https://creareunbloginteressante.blogspot.com' id='comment-editor-src'></a> <iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' width='100%'></iframe> <script src='https://www.blogger.com/static/v1/jsbin/2830521187-comment_from_post_iframe.js' type='text/javascript'></script> <script type='text/javascript'> BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html'); </script> </div> </p> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://creareunbloginteressante.blogspot.com/2010/07/developers-guide.html' id='Blog1_blog-pager-newer-link' title='Post più recente'>Post più recente</a> </span> <a class='home-link' href='https://creareunbloginteressante.blogspot.com/'>Home page</a> </div> <div class='clear'></div> <div class='post-feeds'> <div class='feed-links'> Iscriviti a: <a class='feed-link' href='https://creareunbloginteressante.blogspot.com/feeds/6998128883450967531/comments/default' target='_blank' type='application/atom+xml'>Commenti sul post (Atom)</a> </div> </div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget Profile' data-version='1' id='Profile1'> <h2>Informazioni personali</h2> <div class='widget-content'> <a href='https://www.blogger.com/profile/06661543299349729157'><img alt='La mia foto' class='profile-img' height='53' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBOXKHbnPnVX9Q2ry9Hbk5W10M1tQ0lSbDSwGbSqX_FT3e8rWkApEcbbWAjvVR3dlkYGQUFl4TfP09gmyooLSv3ul-DFtRCZHjGUJF8ZgXLdsH1b3p3-9JhPvC5diZDbA/s220/DSCF9489.JPG' width='80'/></a> <dl class='profile-datablock'> <dt class='profile-data'> <a class='profile-name-link g-profile' href='https://www.blogger.com/profile/06661543299349729157' rel='author' style='background-image: url(//www.blogger.com/img/logo-16.png);'> Cicerone 80 </a> </dt> <dd class='profile-textblock'>L'obiettivo primario della mia vita è stato quello di conoscere e perfezionarmi. Una cosa per me difficile? Capire il senso della vita. Finora non ci sono riuscito, e però ogni giorno tento di svelarlo a me stesso. Descrivermi? Posso dare solo una descrizione banale: una persona seria, che crede nei valori della vita, e però non sa spiegarsi tante cose.</dd> </dl> <a class='profile-link' href='https://www.blogger.com/profile/06661543299349729157' rel='author'>Visualizza il mio profilo completo</a> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Tema Semplice. Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/654365252-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AAVkm1uF0jB_W67F66SBXVyPxhrh:1779580502639';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d1943641633914725031','//creareunbloginteressante.blogspot.com/2010/07/blogger-api-overview.html','1943641633914725031'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '1943641633914725031', 'title': 'Alla ricerca di un layout', 'url': 'https://creareunbloginteressante.blogspot.com/2010/07/blogger-api-overview.html', 'canonicalUrl': 'http://creareunbloginteressante.blogspot.com/2010/07/blogger-api-overview.html', 'homepageUrl': 'https://creareunbloginteressante.blogspot.com/', 'searchUrl': 'https://creareunbloginteressante.blogspot.com/search', 'canonicalHomepageUrl': 'http://creareunbloginteressante.blogspot.com/', 'blogspotFaviconUrl': 'https://creareunbloginteressante.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'it', 'localeUnderscoreDelimited': 'it', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Alla ricerca di un layout - Atom\x22 href\x3d\x22https://creareunbloginteressante.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Alla ricerca di un layout - RSS\x22 href\x3d\x22https://creareunbloginteressante.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Alla ricerca di un layout - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/1943641633914725031/posts/default\x22 /\x3e\n\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Alla ricerca di un layout - Atom\x22 href\x3d\x22https://creareunbloginteressante.blogspot.com/feeds/6998128883450967531/comments/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/8d089198c5fdb3e1', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Ottieni link', 'key': 'link', 'shareMessage': 'Ottieni link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Condividi in Facebook', 'target': 'facebook'}, {'name': 'Postalo sul blog', 'key': 'blogThis', 'shareMessage': 'Postalo sul blog', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Condividi in X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Condividi in Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27it\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Continua a leggere', 'pageType': 'item', 'postId': '6998128883450967531', 'pageName': 'Blogger API Overview', 'pageTitle': 'Alla ricerca di un layout: Blogger API Overview'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Modifica', 'linkCopiedToClipboard': 'Link copiato negli appunti.', 'ok': 'OK', 'postLink': 'Link del post'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Personalizza', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true, 'variant': 'pale', 'variantId': 'pale'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Blogger API Overview', 'description': 'The Blogger Data API allows client applications to view and update Blogger content in the form of Google Data API feeds. Your client applica...', 'url': 'https://creareunbloginteressante.blogspot.com/2010/07/blogger-api-overview.html', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': false, 'isPost': true, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'postId': 6998128883450967531}}]); _WidgetManager._RegisterWidget('_NavbarView', new _WidgetInfo('Navbar1', 'navbar', document.getElementById('Navbar1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_PageListView', new _WidgetInfo('PageList1', 'crosscol', document.getElementById('PageList1'), {'title': 'Pagine', 'links': [{'isCurrentPage': false, 'href': 'https://creareunbloginteressante.blogspot.com/', 'title': 'Home page'}], 'mobile': false, 'showPlaceholder': true, 'hasCurrentPage': false}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/4269602423-lbx__it.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar-right-1', document.getElementById('Profile1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>