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, en modifier ou en supprimer des existants, et effectuer des requêtes sur les articles de blog correspondant à des critères particuliers.

En plus de fournir des informations sur les fonctionnalités de l'API Blogger Data, ce document fournit des exemples d'interactions de base avec 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 sur le protocole de ce guide du développeur.

Sommaire

Audience

Ce document s'adresse aux programmeurs qui souhaitent écrire des applications clientes JavaScript pouvant interagir avec Blogger. Il fournit une série d'exemples d'interactions de base avec 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 suppose que vous comprenez les idées générales derrière le protocole des API Google Data, 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 en JavaScript.

Pour obtenir des informations de référence 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, car chaque exemple s'appuie sur les précédents.

Conditions d'utilisation

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

À propos des environnements compatibles

Actuellement, nous n'acceptons que les applications clientes JavaScript exécutées dans une page Web dans un navigateur. Les navigateurs actuellement compatibles sont Firefox 1.5 et versions ultérieures, ainsi qu'Internet Explorer 6.0 et versions ultérieures.

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 règle de même origine ?" La bibliothèque cliente JavaScript permet à votre client d'envoyer des requêtes à l'API Google Data depuis n'importe quel domaine, tout en respectant le modèle de sécurité du navigateur.

Premiers pas

Avant de pouvoir écrire une application cliente JavaScript, vous devez effectuer une configuration pour acquérir la bibliothèque.

Créer un compte Blogger

Vous pouvez vous inscrire à un compte Blogger à des fins de test. Blogger utilise des comptes Google. Si vous possédez déjà un compte Google, vous êtes prêt.

Acquérir la bibliothèque

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

Commencez par utiliser une balise <script> dans la section <head> de votre document HTML pour extraire le chargeur de l'API Google AJAX:

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

Pour obtenir 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 à partir 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() est le numéro de version demandé de la bibliothèque cliente JavaScript.  Notre système de numérotation des versions est calqué sur celui utilisé par l'API Google Maps. Voici les numéros de version possibles et leur signification:

"1"
Deuxième révision de la version majeure 1.
"1.x"
Dernière révision de la version principale 1.
"1.s"
Dernière version stable de la version majeure 1. Nous déclarons parfois qu'une 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é.

Une fois que vous avez appelé google.load(), vous devez demander au chargeur d'attendre que la page ait fini de se charger, 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 plutôt qu'un gestionnaire onload associé à l'élément <body>.

S'authentifier auprès du 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 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 avec les API Google Data en général, consultez la documentation sur l'authentification.

Authentification par proxy AuthSub

L'authentification par 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 et au mot de passe de l'utilisateur Blogger. À la place, le client obtient 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 d'un client JavaScript basé sur le Web:

  1. L'application cliente appelle la méthode google.accounts.user.login() fournie par la bibliothèque cliente, en lui transmettant une valeur de "champ d'application" qui indique le service Google à utiliser. Pour Blogger, le champ d'application est "http://www.blogger.com/feeds/".
  2. La bibliothèque cliente redirige le navigateur vers 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, le système AuthSub redirige le navigateur vers l'URL du client Web, en transmettant le jeton d'authentification.
  4. La bibliothèque cliente JavaScript stocke le jeton dans un cookie et redonne 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 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 puisse envoyer 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 d'une image transparente d'un seul pixel, mais il doit y avoir une image sur la page. Si vous ne souhaitez pas que l'image apparaisse sur votre page, vous pouvez utiliser l'attribut style de la balise <img> pour positionner l'image 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 plus tard.

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 d'entrée utilisateur pour inviter l'utilisateur à démarrer manuellement le processus de connexion. 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 lorsqu'il arrive 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 essayé d'accéder à votre page, mais a été redirigé ailleurs et n'a jamais été redirigé vers votre page. Ce scénario peut prêter à confusion et être frustrant pour les utilisateurs. Dans l'exemple de code de ce document, nous appelons google.accounts.user.login() immédiatement après le chargement, afin de 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 nommée token. La bibliothèque cliente suit le jeton, ce qui vous évite d'avoir à 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 vous-même ce type d'erreur, 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é entre les sessions de navigateur. L'utilisateur peut donc fermer son navigateur, puis le rouvrir et revenir sur votre client. Il restera alors connecté.

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

Il existe deux autres méthodes AuthSub qui peuvent vous être utiles dans différents contextes:

  • google.accounts.user.checkLogin(scope) 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 des informations sur la gestion des jetons et sur checkLogin() et getInfo(), consultez le document Utiliser l'authentification "AuthSub" avec la bibliothèque cliente JavaScript.

Haut de page