重要提示:这是此页面的旧版本。如需获取最新版本,请使用左侧导航栏中的链接。
本文档提供了 Blogger Data API 的原始协议(XML 和 HTTP)的详细参考文档。
本文档不包含有关编程语言客户端库的信息。如需了解客户端库参考信息,请参阅开发者指南中特定于编程语言的部分中的链接。
目录
受众群体
本文档适用于想要编写可与 Blogger 交互的客户端应用的程序员。
本参考文档假定您了解开发者指南中介绍的概念,以及 Google Data API 协议背后的一般概念。
Blogger Feed 类型
Blogger 在 Feed 中提供两种博客内容表示形式:完整 Feed 和摘要 Feed。完整 Feed 包含完整的博文,而摘要 Feed 仅包含每篇博文的简短摘要。
博客的所有者可以使用 GUI 设置指定博客是向分发商和聚合商提供完整 Feed 还是摘要 Feed。
当您的客户端应用发送未经身份验证的 Feed 请求时,它会收到博主指定的任何类型的 Feed。
不过,当您的客户端应用发送经过身份验证的请求时,无论博客所有者指定了什么,它始终都会收到完整的 Feed。
Blogger 查询参数参考
Blogger Data API 支持几乎所有标准的 Google Data API 查询参数。
Blogger 不支持 q
(文本搜索)和 author
参数。
除非 orderby
参数设置为 updated
,否则系统会忽略 updated-min
和 updated-max
查询参数。例如,以下网址会检索 2008 年 3 月 16 日至 2008 年 3 月 24 日期间更新的所有博文:
http://www.blogger.com/feeds/blogID/posts/default?updated-min=2008-03-16T00:00:00&updated-max=2008-03-24T23:59:59&orderby=updated
Blogger 元素参考
Blogger Data API 仅使用标准 Atom 元素;如需了解详情,请参阅 Atom 1.0 联合发布格式规范和 Atom 发布协议。
本部分的其余内容提供了一些关于 Blogger 使用某些标准元素的具体说明。
草稿条目
博文条目的草稿使用 Atom Publishing Protocol 文档中定义的 <app:draft>
扩展元素进行标记。以下是草稿条目的示例:
<entry xmlns:app='http://purl.org/atom/app#'> ... <app:control> <app:draft>yes</app:draft> </app:control> </entry>
如果未指定 <draft>
元素,则相应条目不是草稿。
发布日期和更新日期
标准 Atom <published>
元素中给出的时间戳对应于用户可以在 Blogger 界面中设置的“发布日期”。
当客户端创建新条目时,如果客户端未为 <published>
指定值,则 Blogger 会将条目的发布日期设置为当前服务器时间。如果您的客户端修改了条目但未指定 <published>
值,Blogger 会保留条目的发布日期。
不过,如果您的客户在创建或修改条目时为 <published>
元素指定了值,Blogger 会将条目的发布日期设置为指定的值。这对于从其他博客系统导入旧条目(同时保留原始创建日期)等任务非常有用。
Blogger 使用标准 Atom <updated>
元素来指明条目的上次更改时间。您的客户端无法控制 <updated>
值;每当您的客户端发布或修改条目时,Blogger 始终会将条目的上次更新日期设置为当前服务器时间。
您可以使用标准 Google Data API published-min
、published-max
、updated-min
和 updated-max
查询参数,根据条目的 <published>
或 <updated>
值请求条目。不过,如需了解如何按更新日期进行查询,请参阅 Blogger 查询参数参考文档。
将评论与帖子相关联
Blogger 导出格式会在一个 Atom Feed 文档中同时包含博文和评论条目。为了区分这两种条目,Blogger 使用了 <atom:category>
元素。此元素将包含一个 term
参数,用于反映条目是针对帖子还是评论。
此外,通过使用 Atom 线程扩展,可以将评论条目与其所属的帖子条目相关联。在以下示例中,评论条目中的 <thr:in-reply-to>
元素将使用 ref
参数中的帖子条目标识符指向帖子。它还会通过 href
参数链接到帖子的 HTML 网址。
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0"> ... <-- A blog post entry --> <entry> <id>tag:blogger.com,1999:blog-blogID.post-postID</id> <content type="html">This is my first post</content> <link rel="alternate" type="text/html" href="http://blogName.blogspot.com/2007/04/first-post.html"> </link> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/blogger/2008/kind#post"/> ... </entry> <-- A comment to the blog post entry --> <entry> <id>tag:blogger.com,1999:blog-blogID.post-postID.comment-commentID</id> <content type="html">This is my first commment</content> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/blogger/2008/kind#comment"/> <thr:in-reply-to href="http://blogName.blogspot.com/2007/04/first-post.html" ref="tag:blogger.com,1999:blog-blogID.post-postID" type="text/html"/> ... </entry> </feed>