Guide du développeur: JavaScript

L'API Blogger Data permet aux applications clientes d'afficher et de mettre à jour le contenu Blogger sous la forme de flux de l'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 qui répondent à des critères particuliers.

En plus de fournir des informations générales sur les fonctionnalités de l'API Blogger Data, ce document fournit des exemples d'interactions de base de l'API Data à l'aide de 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.

Sommaire

Audience

Ce document est destiné aux programmeurs qui souhaitent écrire des applications clientes JavaScript pouvant 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 en savoir plus sur l'API Blogger Data, consultez le Guide de référence du protocole. Ce document part du principe que vous comprenez les concepts généraux sous-jacents au protocole des API Google Data, ainsi qu'au modèle de données et au flux de contrôle utilisés par la bibliothèque cliente JavaScript. Nous partons également du principe que vous savez programmer en JavaScript.

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

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

Conditions d'utilisation

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

À propos des environnements compatibles

Actuellement, nous n'acceptons que les applications clientes JavaScript qui s'exécutent sur une page Web dans un navigateur. Les navigateurs actuellement pris en charge sont Firefox 1.5 ou version ultérieure et Internet Explorer 6.0 ou version ultérieure.

La bibliothèque cliente JavaScript gère toutes les communications avec le serveur du service. Si vous êtes un développeur JS expérimenté, vous vous demandez peut-être "Mais qu'en est-il de la même politique 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.

Premiers pas

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

Création d'un compte Blogger

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

Acquérir 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 pour 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 à partir de la section <head> de votre document HTML (ou d'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() correspond au numéro de version demandé de la bibliothèque cliente JavaScript.Notre schéma de numérotation de version est calqué sur celui utilisé par l'API Google Maps. Voici les numéros de version possibles et leur signification:

"1"
Avant-dernière révision de la version majeure 1.
"1.x"
Dernière révision de la version majeure 1.
"1.s"
Dernière révision stable de la version majeure 1. Nous pouvons parfois déclarer qu'une version spécifique 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 les numéros de révision majeure et mineure spécifiés.

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

google.setOnLoadCallback(getMyBlogFeed);

getMyBlogFeed() est une fonction que nous définirons dans une section ultérieure 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 nécessitent aucune authentification, mais 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 avec les API Google Data en général, consultez la documentation sur l'authentification.

Authentification du proxy AuthSub

L'authentification par proxy AuthSub est utilisée par les applications Web qui doivent authentifier leurs utilisateurs auprès des comptes Google. L'opérateur du site Web et le code client n'ont pas accès au nom d'utilisateur et au mot de passe de l'utilisateur Blogger. Le client obtient à la place des jetons AuthSub spéciaux qui lui permettent d'agir au nom 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" qui indique le service Google à utiliser. Pour Blogger, le champ d'application est "http://www.blogger.com/feeds/".
  2. La bibliothèque cliente envoie le navigateur à la page "Demande d'accès" de Google, 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, la bibliothèque cliente associe automatiquement le jeton à toutes les requêtes.

Remarque: Pour que la bibliothèque cliente JavaScript envoie des requêtes Blogger authentifiées 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 transparente d'un seul pixel. La page doit toutefois comporter une image. 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 utilisateur pour inviter l'utilisateur à démarrer le processus de connexion manuellement. Si 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 en arrivant 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. Par conséquent, du point de vue de l'utilisateur, il a essayé de consulter votre page, mais a été renvoyé et n'a jamais été renvoyé. Ce scénario peut être déroutant et frustrant pour les utilisateurs. Dans l'exemple de code fourni dans ce document, nous appellerons google.accounts.user.login() immédiatement après le chargement, pour simplifier l'exemple, mais nous déconseillons cette approche pour les applications clientes réelles.

Notez que vous n'avez rien à faire avec la variable nommée token. La bibliothèque cliente effectue le suivi du jeton, vous n'avez donc pas à 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. Si une erreur se produit, la bibliothèque cliente affiche un message d'erreur. 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 de navigateur à l'autre. L'utilisateur peut donc fermer son navigateur, puis le rouvrir et revenir à votre client. Il reste connecté.

Cependant, dans certaines circonstances inhabituelles, un jeton peut devenir non valide au cours d'une session. Si Blogger rejette 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 à nouveau login() pour acquérir un nouveau jeton valide.

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

  • google.accounts.user.checkLogin(scope) vous indique si le navigateur dispose ou non 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 "AuthSub" avec la bibliothèque cliente JavaScript.

Haut de page