Important: La version 2.0 de l'API Google Data ne sera plus prise en charge à partir du 30 septembre 2024. Pour assurer un fonctionnement continu, mettez à jour vos applications qui s'appuient sur la version 2.0 de vers la dernière version de l'API Data. Pour obtenir la dernière version, utilisez les liens de la barre de navigation de gauche. Remarque : Bien que certaines requêtes GET (telles que les posts de fiches) continuent d'être acceptées en tant qu'URL de flux, leur comportement présente de légères différences. Pour en savoir plus, consultez Aide Blogger.
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 un blog des articles, modifier ou supprimer des articles de blog existants, et rechercher des articles de blog qui correspondent 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.NET. 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 .NET pouvant interagir avec Blogger.
Dans ce document, nous partons du principe que vous comprenez le concept général qui sous-tend les API Google Data protocole.
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 .NET. Pour obtenir des informations générales de référence sur l'API Blogger Data, consultez le Guide de référence du protocole.
Premiers pas
Si vous avez besoin d'aide pour configurer la bibliothèque cliente, reportez-vous à la section Guide de démarrage.
Pour utiliser la bibliothèque cliente .NET, vous devez disposer de l'environnement d'exécution .NET 1.1.
doit également être à jour sur tous les correctifs. Après avoir téléchargé la bibliothèque cliente, vous trouverez les DLL dont vous avez besoin pour commencer dans le sous-répertoire lib/Release
de la distribution.
Créer un compte Blogger
Vous pouvez vous inscrire à un Blogger à des fins de test. Blogger utilise des comptes Google. Si vous possédez déjà un compte Google, vous êtes prêt.
Exécuter l'exemple de code
Un exemple de client entièrement fonctionnel, contenant tous les exemples de code présentés dans ce document, est disponible dans le projet de bibliothèque cliente .NET. L'exemple se trouve à l'emplacement /trunk/clients/cs/samples/blogger/ConsoleSample.cs dans l'onglet "Source" du dépôt SVN.
Avant de compiler et d'exécuter cet exemple, mettez à jour les valeurs de username
, password
, blogName
et postId
avec les valeurs appropriées. Les username
et
Les valeurs password
représentent les identifiants utilisés pour se connecter à
Blogger. La valeur blogName
correspond au début de l'URL blogspot de votre blog.
L'exemple de client effectue plusieurs opérations sur le blog fourni pour illustrer l'utilisation de l'API Blogger Data.
Pour compiler les exemples de ce document dans votre propre code, vous avez besoin des instructions using
suivantes :
using Google.GData.Client; using System.Net; using System.Xml; using System.Text.RegularExpressions;
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. Il peut utiliser l'une des deux approches suivantes: l'authentification par proxy AuthSub ou l'authentification par nom d'utilisateur/mot de passe ClientLogin.
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 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. Pour en savoir plus, consultez la documentation AuthSub.
Lorsqu'un utilisateur accède à votre application pour la première fois, il n'est pas encore authentifié. Dans ce cas, vous devez afficher des informations et un lien en redirigeant l'utilisateur vers une page Google afin d'authentifier votre demande d'accès à leurs blogs.
Supposons que le lien hypertexte ASP suivant soit défini dans votre page :
<asp:HyperLink ID="GotoAuthSubLink" runat="server"/>
Pour créer l'URL AuthSubRequest de votre application, effectuez un appel de bibliothèque cliente .NET comme suit :
GotoAuthSubLink.Text = "Login to your Google Account"; GotoAuthSubLink.NavigateUrl = AuthSubUtil.getRequestUrl("http://www.example.com/RetrieveToken", "http://www.blogger.com/feeds/", false, true);
La méthode getRequestUrl
utilise les paramètres suivants (correspondant aux paramètres de requête utilisés par le gestionnaire AuthSubRequest) :
- suivant
- URL de la page vers laquelle Google doit rediriger l'utilisateur après l'authentification.
- champ d'application
- Indique que l'application demande un jeton pour accéder aux flux Blogger. La chaîne de portée à utiliser est
http://www.blogger.com/feeds/
(encodée au format URL, bien entendu). - sécurisé
- Indique si le client demande un jeton sécurisé.
- session
- Indique si le jeton renvoyé peut être échangé contre un jeton à usage multiple (session).
L'exemple ci-dessus montre un appel qui ne demande pas de jeton sécurisé (la valeur de secure
est false
). L'URL de requête obtenue peut se présenter comme suit :
https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fwww.blogger.com%2Ffeeds%2F&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2FRetrieveToken
L'utilisateur suit le lien vers le site Google et s'authentifie sur son compte Compte.
Une fois l'utilisateur authentifié, le système AuthSub le redirige vers l'URL.
que vous avez spécifié dans le paramètre de requête next
de l'AuthSubRequest
URL. Le système AuthSub ajoute un jeton d'authentification à cette URL, puisque
Valeur du paramètre de requête token
. Par conséquent, le jeton est
accessible en tant que variable dans le fichier Request.QueryString
de la page ASP
. L'utilisateur est redirigé vers une URL qui se présente comme suit :
http://www.example.com/RetrieveToken?token=yourAuthToken
Cette valeur de jeton représente un jeton AuthSub à usage unique. Dans cet exemple, comme session = true
a été spécifié, ce jeton peut être échangé contre un jeton de session AuthSub, comme suit :
SessionsessionToken = AuthSubUtil.exchangeForSessionToken(Request.QueryStringtoken, null);
Autrement dit, vous transmettez votre jeton à usage unique
exchangeForSessionToken
, ainsi que null
(pour le mode non enregistré) ou privée (pour le mode enregistré), et l'authentification AuthSub
renvoie un jeton de session. Pour en savoir plus sur les applications enregistrées et les clés privées, consultez la section Signer des requêtes de la documentation AuthSub.
Votre application peut alors utiliser la valeur du jeton de session dans avec Blogger. Pour demander à la bibliothèque cliente .NET d'envoyer automatiquement l'en-tête d'autorisation (contenant le jeton de session) avec chaque requête, procédez comme suit :
GAuthSubRequestFactory authFactory = new GAuthSubRequestFactory("blogger", "BloggerSampleApp"); authFactory.Token = SessionsessionToken.ToString(); Service service = new Service(authFactory.ApplicationName); service.RequestFactory = authFactory;
Authentification par nom d'utilisateur/mot de passe ClientLogin
Utilisez l'authentification ClientLogin si votre client est un client autonome, "installé" et à un seul utilisateur (par exemple, une application de bureau). Définissez le paramètre les identifiants de votre objet de service comme suit:
Service service = new Service("blogger", "exampleCo-exampleApp-1"); service.Credentials = new GDataCredentials("user@example.com", "secretPassword"); GDataGAuthRequestFactory factory = (GDataGAuthRequestFactory) service.RequestFactory; factory.AccountType = "GOOGLE";
Dans l'extrait ci-dessus, nous transmettons deux paramètres au constructeur Service
. Le premier paramètre est le nom du service avec lequel nous voulons interagir
. Le deuxième paramètre est le nom de notre application au format
companyName, applicationName et versionID Nous avons également
définissez Service.RequestFactory
pour qu'il n'utilise qu'un GOOGLE
type de compte afin d'autoriser l'authentification appropriée pour les utilisateurs de G Suite.
Pour en savoir plus sur l'authentification ClientLogin, y compris des exemples requêtes et les réponses correspondantes, consultez la section Authentification pour les Applications.
Remarque : Utilisez le même jeton pour toutes les requêtes d'une session donnée. N'obtenez pas de nouveau jeton pour chaque requête Blogger.
Remarque : Comme décrit dans la documentation ClientLogin, la requête d'authentification peut échouer et demander un défi CAPTCHA. Si vous souhaitez que Google émette et gère le test CAPTCHA, redirigez l'utilisateur vers https://www.google.com/accounts/DisplayUnlockCaptcha?service=blogger
(plutôt que vers l'URL de gestion du CAPTCHA indiquée dans la documentation ClientLogin).
Récupérer une liste de blogs
L'API Blogger Data fournit un flux qui répertorie les blogs d'un user; appelé "metafeed".
L'exemple de code suivant utilise un objet Service
authentifié.
pour récupérer le métaflux, puis imprime le titre de chaque blog.
query.Uri = new Uri("http://www.blogger.com/feeds/default/blogs"); AtomFeed feed = null; try { feed = service.Query(query); foreach (AtomEntry entry in feed.Entries) { Console.WriteLine("Blog Title: " + entry.Title.Text); } }
Notez l'URL utilisée par la méthode getFeed
. Il s'agit de l'option par défaut
metafeed URL; il renvoie une liste de blogs pour
l'utilisateur actuellement authentifié.
Pour accéder à un flux pour un autre utilisateur, vous pouvez remplacer default
par l'ID de l'utilisateur dans l'URL du métaflux. L'identifiant de l'utilisateur est une chaîne de chiffres
à la fin de l'URL du profil de l'utilisateur.
Créer des posts
L'API Blogger Data vous permet de créer et de publier de nouveaux articles de blog, et créer des brouillons d'entrées.
Tous les exemples suivants supposent que vous disposez
Service
.
Remarque: Définir un auteur personnalisé pour les posts est n'est actuellement pas prise en charge. Tous les nouveaux posts apparaîtront comme s'ils avaient été créés par l'utilisateur actuellement authentifié.
Publication d'un article de blog
Vous pouvez utiliser la bibliothèque cliente .NET pour publier de nouvelles entrées de blog.
Commencez par créer un objet AtomEntry
pour représenter l'article de blog.
Vous pouvez ensuite définir le titre, le contenu et d'autres attributs de l'article de blog.
Enfin, utilisez l'objet Service
pour insérer le post. Voici un
exemple de publication d'un nouvel article de blog:
AtomEntry newPost = new AtomEntry(); newPost.Title.Text = "Marriage!"; newPost.Content = new AtomContent(); newPost.Content.Content = "<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>"; newPost.Content.Type = "xhtml"; Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default"); AtomEntry createdEntry = service.Insert(blogFeedUri, newPost);
La méthode Insert
utilise l'URL de publication du service comme paramètre.
La méthode renvoie ensuite l'entrée telle qu'elle a été stockée par Blogger. L'entrée renvoyée est la même que celle que vous avez envoyée, mais elle contient également divers éléments ajoutés par Blogger, tels qu'un ID de post.
Si votre requête échoue pour une raison quelconque, Blogger peut renvoyer un code d'état différent. Pour plus d'informations sur les codes d'état, consultez le document Google Data document de référence du protocole d'API.
Créer un brouillon d'article de blog
Les posts en brouillon sont créés de la même manière que les posts publics, mais vous devez définir l'attribut draft
de l'objet AtomEntry
. Le blog
l'article ci-dessus peut être créé en tant que brouillon en ajoutant la ligne mise en surbrillance suivante:
AtomEntry newPost = new AtomEntry(); newPost.Title.Text = "Marriage!"; newPost.Content = new AtomContent(); newPost.Content.Content = "<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>"; newPost.Content.Type = "xhtml"; newPost.IsDraft = true; Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default"); AtomEntry createdEntry = service.Insert(blogFeedUri, newPost);
Vous pouvez transformer un brouillon d'article de blog en article publié en récupérant le brouillon, en définissant l'attribut brouillon sur "false", puis en mettant à jour post. Nous aborderons la récupération et la mise à jour des posts dans les deux sections suivantes.
Récupérer des posts
Les sections suivantes expliquent comment récupérer une liste d'articles de blog, avec et sans paramètres de requête.
Vous pouvez interroger un flux public Blogger sans vous authentifier. Par conséquent, vous n'avez pas besoin de définir d'identifiants ni d'effectuer d'authentification AuthSub avant de récupérer des posts à partir d'un blog public.
Récupérer tous les articles de blog
Pour récupérer les posts de l'utilisateur, appelez la même méthode getFeed
utilisée pour récupérer le métaflux des blogs, mais cette fois, envoyez l'URL du flux de posts de blog :
query.Uri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default"); feed = service.Query(query); Console.WriteLine(feed.Title.Text); foreach (AtomEntry entry in feed.Entries) { Console.WriteLine("Entry Title: " + entry.Title.Text); }
Récupérer des posts à l'aide de paramètres de requête
L'API Blogger Data vous permet de demander un ensemble d'entrées correspondant à des critères spécifiés, par exemple en demandant des articles de blog publiés ou mis à jour dans une plage de dates donnée. Pour ce faire, vous devez créer un objet FeedQuery
et le transmettre à la
Service.Query()
.
Par exemple, pour envoyer une requête de plage de dates, définissez MinPublication
et MaxPublication
de l'objet FeedQuery
.
L'extrait de code suivant imprime le titre de chaque article de blog publié entre
les heures de début et de fin données:
FeedQuery query = new FeedQuery(); query.Uri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default"); query.MinPublication = new DateTime(2006, 1, 1); query.MaxPublication = new DateTime(2007, 4, 12); AtomFeed feed = service.Query(query); foreach (AtomEntry entry in feed.Entries) { Console.WriteLine(" Entry Title: " + entry.Title.Text); }
Notez que l'objet FeedQuery
est construit à l'aide de la même URL de flux de posts utilisée pour récupérer les posts.
L'API Blogger Data accepte les paramètres de requête suivants :
- alt
- Type de flux à renvoyer, par exemple
atom
(par défaut) ourss
. - /category
- Spécifiez des catégories (également appelées "libellés") pour filtrer les résultats du flux. Par exemple,
http://www.blogger.com/feeds/blogID/posts/default/-/Fritz/Laurie
renvoie des entrées avec les étiquettesFritz
etLaurie
. - max-results
- Nombre maximal d'entrées à renvoyer.
- trier par
- Ordre dans lequel les entrées doivent être renvoyées, tel que
lastmodified
(par défaut),starttime
ouupdated
. - published-min, published-max
- Les limites des dates de publication des entrées.
- start-index
- Index en base 1 du premier résultat à récupérer (pour la pagination).
- mis à jour-min, mis à jour-max
- Limites des dates de mise à jour des entrées. Ces paramètres de requête sont ignorés, sauf si le paramètre
orderby
est défini surupdated
.
Pour en savoir plus sur les paramètres de requête, consultez la documentation de référence de l'API Blogger Data. d'assistance et le guide Google Guide de référence des API de données
Mise à jour des posts...
Pour mettre à jour un article de blog existant, vous devez d'abord récupérer l'entrée que vous souhaitez
est modifié, puis l'envoie à Blogger à l'aide de la méthode
Update()
. L'extrait de code suivant modifie le titre d'un article de blog, en supposant que vous l'avez déjà récupéré sur le serveur.
static AtomEntry EditEntry(AtomEntry toEdit) { // Edit the entry by changing the Title and calling Update(). if (toEdit != null) { toEdit.Title.Text = "Marriage Woes!"; toEdit = toEdit.Update(); } return toEdit; }
Le code ci-dessus renvoie un AtomEntry
contenant l'intégralité du post nouvellement mis à jour. Pour mettre à jour d'autres propriétés, il vous suffit de les définir dans l'objet AtomEntry
avant d'appeler Update()
.
Remarque: Modifier les données d'auteur associées à posts n'est pas pris en charge pour le moment.
Supprimer des posts
Pour supprimer un post, appelez la méthode Delete
sur un objet AtomEntry
existant, comme suit :
static void DeleteEntry(AtomEntry toDelete) { // Delete the edited entry if (toDelete != null) { toDelete.Delete(); } }
Commentaires
L'API Blogger Data permet de créer, de récupérer et de supprimer des commentaires. La mise à jour des commentaires n'est pas disponible (cette fonctionnalité n'est pas non plus disponible sur le Web) .
Création de commentaires
Pour publier un commentaire, créez un objet AtomEntry
et insérez-le comme suit :
AtomEntry comment; comment = new AtomEntry(); comment.Title.Text = "This is my first comment"; comment.Content.Content = "This is my first comment"; Uri commentPostUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/" + entryId + "/comments/default"); postedComment = service.Insert(commentPostUri, comment);
Remarque: Actuellement, vous ne pouvez publier des commentaires que pour un blog appartenant à l’utilisateur authentifié.
Remarque : Il n'est actuellement pas possible de définir un auteur personnalisé pour les commentaires. Tous les nouveaux commentaires apparaîtront comme s'ils avaient été créés par l'utilisateur actuellement authentifié.
Récupération des commentaires
Vous pouvez récupérer les commentaires d'un post en particulier à partir des commentaires de l'article. URL du flux:
static void ListEntryComments(Service service, Uri commentUri) { if (commentUri != null) { // Retrieve all comments on a blog entry FeedQuery query = new FeedQuery(); query.Uri = commentUri; AtomFeed feed = service.Query(query); foreach (AtomEntry entry in feed.Entries) { Console.WriteLine(" Comment Title: " + entry.Title.Text); } } }
Vous pouvez également obtenir les commentaires de tous les posts à l'aide de l'URL du flux de commentaires du blog :
http://www.blogger.com/feeds/blogID/comments/default
Suppression des commentaires
Pour supprimer un commentaire, appelez la méthode Delete()
sur un
commentez l'objet AtomEntry
comme ceci:
static void DeleteComment(AtomEntry commentEntry) { if (commentEntry != null) { // Delete the comment. commentEntry.Delete(); } }