14.5. Utilistion de Google Blogger

Le service l'hebergement de Blogs Blogger.com fait partie des API Google Data. Vous pouvez écrire des applications PHP utilisant Zend_Gdata_Blogger pour interroger des blogs existants, et poster de nouvelles entrées sur des blogs sur lesquels vous avez des droits d'accès.

Voir http://code.google.com/apis/blogger/overview.html pour plus d'information a propos des API Google Blogger.

14.5.1. Comprendre la compatibilité de version Blogger

Il existe des différences d'utilisation des API Google Data vis à vis des blogs hébérgés sur la version actuelle de Blogger, et de ceux hébérgés sur la version beta du service Blogger. La plus grosse diférence relève de l'authentification. Voir tableau ci-dessous:

Tableau 14.1. Différences entre le service Blogger actuel et la version beta

Caractéristique Service Blogger actuel Service Blogger beta
Support des API Google Data Oui Oui
Authentification basée sur Compte Blogger.com Compte Google.com
Support de l'athentifiation ClientLogin Oui Oui
Support de l'authentification HTTP basique Oui Non
Supports AuthSub authentication No Yes
Format des fils non authentfiés Atom 0.3 Atom 1.0
Format des fils authentifiés Atom 1.0 Atom 1.0
Format des entrées postés Atom 1.0 Atom 1.0
Support des paramètres de requetes Non Oui

14.5.2. Interroger un blog

Utilisez la methode setBlogName() pour spécifier le nom du blog. C'est le nom que l'on retorouve dans l'URL du blog, par exemple: http://blogname.blogspot.com. Vous pouvez aussi spécifier le nom du blog à l'intérrogation d'un fil.

<?php
$gdataBlog = new Zend_Gdata_Blogger();

// Première façon de récupérer le flux
$feed = $gdataBlog->getBloggerFeed('blogname');

// Autre methode
$gdataBlog->setBlogName('blogname');
$feed = $gdataBlog->getBloggerFeed();
?>

Voir la documentation de Zend_Feed pour plus d'informations sur l'utilisation de cet objet.

Les methodes setPublishedMin() et setPublishedMax() vous permettent de spécifier des limites sur la date des entrées. Si vous spécifiez une valeur pour publishedMin, aucune entre publiée avant cette date ne sera récupérer. De la même façon, aucune entrées publiée après la date spécifiée par publishedMax ne sera pris en compte.

Dans le flux les entrées sont ordonnées par l'élément <updated> avec l'entrée a plus récente apparaissant en premier dans le flux.

[Note] Non support des catégories ou des requetes full-text

Actuellement, les API Google Bloger ne suportent pas des requetes utilisant les catégories, mots clef ou tags. Si vous essayez de spécifier une recherche en utilisant setCategory(), Zend_Gdata_Blogger renverra une exception.

Les API Google Blogger ne suportent actuellement pas les requetes utilisant une recherche full-text. SI vous essayez de spécifier une recherche en utilisant setQuery(), Zend_Gdata_Blogger renverra une exception.

14.5.3. Poster sur votre blog

Vos pouvez utiliser la methode post() pour poster des entrées sur votre blog. Por cela vous devez utiliser un Zend_Http_Client authentifié que vous aurez créer en utilisant l'une des classes Zend_Gdata_AuthSub ou Zend_Gdata_ClientLogin

<?php
$gdataBlog = new Zend_Gdata_Blogger($authenticatedHttpClient);
$gdataBlog->setBlogName('myblog');

$xmlString = <<<XML
<entry xmlns='http://www.w3.org/2005/Atom'>
  <title type='text'>Marriage!</title>
  <content type='xhtml'>
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p>Mr. Darcy has <em>proposed marriage</em> to me!</p>
      <p>He is the last man on earth I would ever desire to marry.</p>
      <p>Whatever shall I do?</p>
    </div>
  </content>
  <author>
    <name>Elizabeth Bennet</name>
    <email>liz@gmail.com</email>
  </author>
</entry>
XML;

$xml = new SimpleXMLElement($xmlString);

$response = $gdataBlog->post($xml->asXML());
?>

Vou pouvez récupérer le flux des noms des blogs de votre client HTTP authentifié en utilisant le methode getBloggerListFeed()

<?php
$gdataBlog = new Zend_Gdata_Blogger($authenticatedHttpClient);
$myBlogs = $gdataBlog->getBloggerListFeed();
?>