Guide du développeur: JavaScript

L'API Blogger Data permet aux applications clientes d'afficher et de mettre à jour 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 vous présenter les fonctionnalités de Blogger, Data API, ce document fournit des exemples d'interactions élémentaires 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 sur le protocole de ce guide du développeur.

Sommaire

Audience

Ce document est destiné aux programmeurs qui souhaitent écrire un client JavaScript. qui peuvent interagir avec Blogger. Il fournit une série d'exemples les 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 suppose que vous comprenez les concepts généraux sur lesquels reposent les API Google Data protocole, ainsi que le modèle de données et le flux de contrôle utilisés par le client JavaScript bibliothèque. 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 ne prenons en charge que les applications clientes JavaScript qui s'exécutent dans un environnement dans un navigateur. Les navigateurs actuellement pris en charge sont Firefox 1.5 et versions ultérieures et 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 à quoi à peu près la même chose la règle d'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 procéder à une configuration afin d'acquérir la bibliothèque.

Créer un compte Blogger

Vous pouvez vous inscrire à un compte Blogger à des fins de test. Blogger utilise un compte 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 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 méthode la section <head> de votre document HTML (ou à partir d'un fichier 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 de version est modélisé d'après celui utilisé par l'API Google Maps. Voici les numéros de version possibles et leur signification :

"1"
Précédant la dernière 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. Il nous arrive de 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 plutôt qu'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 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 des utilisateurs 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 pendant le 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 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 correctement, le système AuthSub envoie la à l'URL du client Web, en transmettant l'authentification à partir d'un jeton d'accès.
  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 la bibliothèque cliente 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 s'affiche sur votre page, vous pouvez utiliser l'style du tag <img> pour positionner l'image en dehors de la la zone de rendu. Exemple : style="position:absolute; top: -1000px;"

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

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 un bouton de connexion ou un autre mécanisme d'entrée utilisateur pour inviter l'utilisateur à démarrer la procédure 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 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 être déroutante et frustrante 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 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é.

Cependant, dans certaines circonstances inhabituelles, 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 à 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) vous indique si Le navigateur ne dispose pas actuellement d'un jeton d'authentification le champ d'application.
  • google.accounts.user.getInfo() fournit des informations détaillées sur le jeton actuel, à des fins de débogage.

Pour plus d'informations sur l'utilisation de JavaScript pour interagir avec AuthSub, consultez les articles suivants : des informations sur la gestion des jetons, ainsi que sur checkLogin() et getInfo(), consultez la section Utiliser "AuthSub" Authentification avec la bibliothèque cliente JavaScript document.

Haut de page