Guide du développeur: JavaScript

L'API Blogger Data permet aux applications clientes d'afficher et de mettre à jour le contenu de Blogger sous la forme de flux d'API Google Data.

Votre application cliente peut utiliser l'API Blogger Data pour créer des articles de blog, modifier ou supprimer des articles de blog existants et rechercher des articles de blog correspondant à des critères particuliers.

En plus de vous familiariser avec les fonctionnalités de l'API Data de Blogger, ce document fournit des exemples d'interactions de l'API Data de base avec la bibliothèque cliente JavaScript. Si vous souhaitez en savoir plus sur le protocole sous-jacent utilisé par la bibliothèque, consultez la section Protocole de ce guide du développeur.

Contenus

Audience

Ce document est destiné aux programmeurs qui souhaitent écrire des applications clientes JavaScript capables d'interagir avec Blogger. Il fournit une série d'exemples d'interactions de base de l'API Data à l'aide de la bibliothèque cliente JavaScript.

Pour obtenir des informations de référence sur l'API Data de Blogger, consultez le Guide de référence du protocole. Ce document part du principe que vous comprenez les principes généraux du protocole Google Data APIs, ainsi que le modèle de données et le flux de contrôle utilisés par la bibliothèque cliente JavaScript. Nous supposons également que vous savez programmer dans JavaScript.

Pour plus d'informations sur les classes et les méthodes fournies par la bibliothèque cliente, consultez la documentation de référence de l'API pour les bibliothèques clientes JavaScript.

Ce document est conçu pour être lu dans l'ordre. Chaque exemple s'appuie sur des exemples précédents.

Conditions d'utilisation

Vous acceptez de respecter les Conditions d'utilisation de la bibliothèque cliente JavaScript Google lorsque vous l'utilisez.

À propos des environnements compatibles

Actuellement, nous n'acceptons que les applications clientes JavaScript qui s'exécutent sur une page Web d'un navigateur. Les navigateurs actuellement compatibles sont Firefox 1.5 et les versions ultérieures, et Internet Explorer 6.0 et les versions ultérieures.

La bibliothèque cliente JavaScript gère toutes les communications avec le serveur de service. Si vous êtes un développeur JS expérimenté, vous pensez peut-être. Mais qu'en est-il de la même règle d'origine ? La bibliothèque cliente JavaScript permet à votre client d'envoyer des requêtes API Google Data à partir de n'importe quel domaine, tout en restant conforme au modèle de sécurité du navigateur.

Commencer

Avant de pouvoir écrire une application cliente JavaScript, vous devez la configurer afin d'acquérir la bibliothèque.

Créer un compte Blogger

Vous pouvez créer un compte Blogger à des fins de test. Blogger utilise les comptes Google. Si vous en avez déjà un, vous n'avez rien à faire.

Acquisition de la bibliothèque

Pour que votre client puisse utiliser la bibliothèque cliente, il doit demander le code de cette bibliothèque au serveur.

Commencez par utiliser une balise <script> dans la section <head> de votre document HTML afin de récupérer le chargeur d'API Google AJAX:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>

Pour acquérir la bibliothèque cliente de l'API Google Data après avoir récupéré le chargeur, utilisez la ligne suivante dans votre code de configuration JavaScript, qui doit être appelée depuis la section <head> de votre document HTML (ou depuis un fichier JavaScript inclus à l'aide d'une balise <script> dans la section <head> de votre document HTML):

google.load("gdata", "1.x");

Le deuxième paramètre de google.load() est le numéro de version demandé de la bibliothèque cliente JavaScript.Notre schéma de numérotation des versions est basé sur celui utilisé par l'API Google Maps. Voici les numéros de version possibles et leur signification:

"1"
Deuxième à la dernière révision de la version majeure 1.
"1.x"
La dernière révision de la version majeure 1.
"1.s"
Dernière version stable de la version majeure 1. De temps à autre, nous déclarons qu'une certaine version de la bibliothèque cliente est "stable" en fonction des commentaires que nous recevons des développeurs. Toutefois, il est possible que cette version ne dispose pas des dernières fonctionnalités.
"1.0", "1.1, etc.
Version spécifique de la bibliothèque, avec un numéro de révision majeur et mineur spécifié.

Après avoir appelé google.load(), vous devez demander au chargeur de patienter jusqu'à la fin du chargement de la page, puis d'appeler votre code:

google.setOnLoadCallback(getMyBlogFeed);

getMyBlogFeed() est une fonction que nous définirons dans la suite de ce document. Utilisez cette approche au lieu d'avoir un gestionnaire onload associé à l'élément <body>.

S'authentifier sur le service Blogger

Vous pouvez accéder aux flux publics et privés à l'aide de l'API Blogger Data. Les flux publics ne requièrent aucune authentification, mais ils sont en lecture seule. Si vous souhaitez modifier des blogs, votre client doit s'authentifier avant de demander des flux privés.

La bibliothèque cliente JavaScript utilise le système d'authentification AuthSub. Pour en savoir plus sur l'authentification auprès des API Google Data en général, consultez la documentation sur l'authentification.

Authentification du proxy AuthSub

L'authentification de proxy AuthSub est utilisée par les applications Web qui doivent authentifier leurs utilisateurs auprès de comptes Google. L'opérateur du site Web et le code client n'ont pas accès au nom d'utilisateur ni au mot de passe de l'utilisateur Blogger. À la place, le client obtient des jetons AuthSub spéciaux qui lui permettent d'agir pour le compte d'un utilisateur particulier.

Voici un bref aperçu de ce qui se passe lors du processus d'authentification pour un client JavaScript Web:

  1. L'application cliente appelle la méthode google.accounts.user.login() fournie par la bibliothèque cliente, en lui transmettant une valeur "scope" indiquant le service Google à utiliser. Pour Blogger, la portée est "http://www.blogger.com/feeds/".
  2. La bibliothèque cliente envoie le navigateur à la page de demande d'accès, où l'utilisateur peut saisir ses identifiants pour se connecter au service.
  3. Si l'utilisateur se connecte correctement, le système AuthSub renvoie le navigateur à l'URL du client Web, en transmettant le jeton d'authentification.
  4. La bibliothèque cliente JavaScript stocke le jeton dans un cookie et rend le contrôle à la fonction de l'application cliente, qui a appelé google.accounts.user.login().
  5. Lorsque l'application cliente appelle ensuite des méthodes de la bibliothèque cliente qui interagissent avec Blogger, elle associe automatiquement le jeton à toutes les requêtes.

Remarque : Pour que la bibliothèque cliente JavaScript effectue des requêtes authentifiées de Blogger dans un navigateur Web, votre page doit contenir une image hébergée sur le même domaine que votre page. Il peut s'agir de n'importe quelle image, même d'une image transparente d'un seul pixel, mais il doit y en avoir une sur la page. Si vous souhaitez que l'image n'apparaisse pas sur votre page, vous pouvez utiliser l'attribut style de la balise <img> pour la positionner en dehors de la zone de rendu. Exemple : style="position:absolute; top: -1000px;"

Voici le code de l'application cliente qui gère la connexion. Nous appellerons la fonction setupMyService() à partir d'un autre code ultérieurement.

function logMeIn() {
  scope = "http://www.blogger.com/feeds/";
  var token = google.accounts.user.login(scope);
}

function setupMyService() {
  var myService =
    new google.gdata.blogger.BloggerService('exampleCo-exampleApp-1');
  logMeIn();
  return myService;
}

Conseil: Nous vous recommandons vivement de fournir un bouton de connexion ou un autre mécanisme de saisie pour inviter l'utilisateur à démarrer le processus de connexion manuellement. Si, à la place, vous appelez google.accounts.user.login() immédiatement après le chargement, sans attendre l'interaction de l'utilisateur, la première chose que l'utilisateur voit à votre arrivée sur votre page est une page de connexion Google. Si l'utilisateur décide de ne pas se connecter, Google ne le redirige pas vers votre page. Du point de vue de l'utilisateur, il a donc tenté de visiter votre page, mais il a été renvoyé et ne l'a jamais renvoyé. Ce scénario peut être déroutant pour les utilisateurs. Dans l'exemple de code de ce document, nous appellerons google.accounts.user.login() immédiatement après le chargement, pour simplifier l'exemple. Toutefois, nous ne recommandons pas cette approche pour les applications clientes réelles.

Notez que vous n'avez rien à faire avec la variable token. La bibliothèque cliente effectue le suivi du jeton, et vous n'avez donc pas besoin de le faire.

Remarque: Lorsque vous créez un objet BloggerService, la bibliothèque cliente appelle une méthode nommée google.gdata.client.init(), qui vérifie que le navigateur dans lequel le client s'exécute est compatible. En cas d'erreur, la bibliothèque cliente affiche un message d'erreur à l'utilisateur. Si vous souhaitez gérer ce type d'erreur vous-même, vous pouvez appeler explicitement google.gdata.client.init(handleInitError) avant de créer le service, où handleInitError() est votre fonction. Si une erreur d'initialisation se produit, votre fonction reçoit un objet Error standard. Vous pouvez faire ce que vous voulez avec cet objet.

Le jeton reste valide jusqu'à ce que vous le révoquiez en appelant google.accounts.user.logout():

function logMeOut() {
  google.accounts.user.logout();
}

Si vous n'appelez pas logout(), le cookie qui stocke le jeton reste actif pendant deux ans, sauf si l'utilisateur le supprime. Le cookie est conservé d'une session à l'autre. L'utilisateur peut donc fermer son navigateur, puis le rouvrir, puis revenir sur votre client pour s'y connecter.

Toutefois, dans certains cas inhabituels, un jeton peut devenir non valide pendant une session. Si Blogger refuse un jeton, votre client doit gérer la condition d'erreur en appelant logout() pour supprimer le cookie contenant le jeton actuel, puis en appelant login() pour acquérir un nouveau jeton valide.

Deux autres méthodes AuthSub peuvent vous être utiles dans divers contextes:

  • google.accounts.user.checkLogin(scope) vous indique si le navigateur dispose actuellement d'un jeton d'authentification pour le champ d'application donné.
  • google.accounts.user.getInfo() fournit des informations détaillées sur le jeton actuel à des fins de débogage.

Pour en savoir plus sur l'utilisation de JavaScript pour interagir avec AuthSub, y compris sur la gestion des jetons, ainsi que sur checkLogin() et getInfo(), consultez le document Utiliser l'authentification avec la bibliothèque cliente JavaScript.

Haut de page