重要提示:我们将于 2024 年 9 月 30 日停止支持 v2.0 JSON API。 为了确保功能继续正常运行,请将依赖于 v2.0 JSON API 的应用更新为最新的 API 版本。如需使用最新版本,请使用左侧导航栏中的链接。
本文档介绍了如何使用 RESTful 调用样式使用 Blogger JSON API 的常用功能。
目录
简介
本文档适用于想要编写可与 Blogger JSON API 交互的应用的开发者。Blogger 是一款用于创建网站的工具,可让用户持续发布自己的想法。
如果您不熟悉 Blogger 概念,请先阅读使用入门,然后再开始编码。
为请求授权和识别您的应用
您的应用发送到 Blogger JSON API 的每个请求都需要向 Google 标识您的应用。您可以通过两种方式 应用:使用 OAuth 2.0 令牌(验证 也授权请求)和/或使用应用的 API 密钥。下面介绍了如何确定 使用:
- 如果请求需要授权(例如,请求个人 私有数据),则应用必须提供带有 请求。应用也可以提供 API 密钥,但不是必须的。
- 如果请求不需要授权(例如对公开数据的请求),则应用必须提供 API 密钥或 OAuth 2.0 令牌,或者同时提供两者(选择对您而言最方便的方式即可)。
关于授权协议
您的应用必须使用 OAuth 2.0 对请求进行授权不支持其他授权协议。
注意:Blogger JSON API 当前不支持在请求数据访问 (hybrid) 或全网域授权委派 (2LO) 的同时登录。
使用 OAuth 2.0 给请求授权
对于非公开用户数据,发送到 Blogger JSON API 的请求必须由经过身份验证的用户授权。
根据您所编写的应用的类型,OAuth 2.0 的具体授权流程可能会有所不同。下面是适用于所有应用类型的大致流程:
- 当您创建自己的应用时,需要向 Google 注册应用。Google 然后提供您稍后需要的信息,例如客户端 ID 和客户端 密钥。
- 在 Google API 的“服务”窗格中激活 Blogger JSON API 控制台。(如果控制台中未列出此 API,请跳过这一步骤。)
- 当您的应用需要访问用户数据时,它会向 Google 请求 特定范围的访问权限。
- Google 会向相应用户显示 OAuth 对话框,让用户授权您的应用请求他们的某些数据。
- 用户批准后,Google 会为您的应用提供一个时效很短的访问令牌。
- 您的应用请求用户数据,将访问令牌附加到 请求。
- 如果 Google 确定您的请求和令牌有效,就会返回您所请求的数据。
有些流程还包含其他步骤,例如使用刷新 令牌以获取新的访问令牌。如需详细了解 请参阅 Google 的 OAuth 2.0 文档。
以下是 Blogger JSON API 的 OAuth 2.0 范围信息:
https://www.googleapis.com/auth/blogger
要通过 OAuth 2.0 请求访问权限,您的应用需要范围 以及 Google 在您提交申请期间提供的信息, (例如客户端 ID 和/或客户端密钥)。
提示:Google API 客户端库 为您处理一些授权流程。并且支持多种编程语言;有关详情,请参阅“库和示例”页面。
获取和使用 API 密钥
向 Blogger JSON API 发出的公开数据请求必须附带 该标识符可以是 API 密钥或身份验证令牌。
如需获取 API 密钥,请访问 API 控制台。在服务中 激活 [api_name];如果出现服务条款,请阅读并接受 。
接下来,前往 API 访问权限窗格。API 密钥位于该窗格的底部附近,位于标题为“Simple API Access”(简单 API 访问)的部分中。
在您获得 API 密钥后,您的应用便可在所有请求网址后附加查询参数 key=yourAPIKey
。
API 密钥可以安全地嵌入网址中;不需要进行任何编码。
使用博客
检索博客
您可以通过发送 HTTP
对博客 URI 发出 GET
请求。博客资源的 URI 格式如下:
https://www.googleapis.com/blogger/v2/blogs/blogId
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/2399953&key=YOUR-API-KEY
由于用户无需进行身份验证即可检索公开博客,因此您无需在此 GET
请求中提供 Authorization
HTTP 标头;但如果您不提供该标头,则需要提供 API 密钥。
Blogger 还有私人博客,需要进行身份验证。
响应
如果请求成功,服务器将返回 HTTP 200 OK
状态代码和博客数据:
200 OK { "kind": "blogger#blog", "id": "2399953", "name": "Blogger Buzz", "description": "The Official Buzz from Blogger at Google", "published": "2007-04-23T22:17:29.261Z", "updated": "2011-08-02T06:01:15.941Z", "url": "http://buzz.blogger.com/", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953", "posts": { "totalItems": 494, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts" }, "pages": { "totalItems": 2, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/pages" }, "locale": { "language": "en", "country": "", "variant": "" } }
检索用户的博客
您可以向博客集合 URI 发送 HTTP GET
请求,以检索用户的博客列表:
https://www.googleapis.com/blogger/v2/users/userId/blogs
请求
下面是一个 GET
请求示例,其中列出了
用户的博客:
GET https://www.googleapis.com/blogger/v2/users/self/blogs
Authorization: /* OAuth 2.0 token here */
注意:用户必须经过身份验证才能列出自己的博客,因此您必须在 GET
请求中提供 Authorization
HTTP 标头。
响应
如果请求成功,服务器将返回 HTTP 200 OK
状态代码以及用户博客列表的完整表示形式:
200 OK { "kind": "blogger#blogList", "items": [ { "kind": "blogger#blog", "id": "4967929378133675647", "name": "Brett's Test Blawg", "description": "", "published": "2010-10-06T23:33:31.662Z", "updated": "2011-08-08T06:50:02.005Z", "url": "http://brettmorgan-test-blawg.blogspot.com/", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647", "posts": { "totalItems": 13, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/posts" }, "pages": { "totalItems": 1, "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages" }, "locale": { "language": "en", "country": "", "variant": "" } } ] }
处理帖子
从博客中检索帖子
您可以发送
对帖子收藏集 URI 发出 GET
请求。帖子集合的 URI 采用以下格式:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts&key=YOUR-API-KEY
由于用户无需经过身份验证即可从公开博客中检索这些帖子,
就无需为请求提供 Authorization
HTTP 标头
GET
请求;但如果您不提供该标头,则需提供 API 密钥。
Blogger 还有私人博客,需要进行身份验证。
响应
如果请求成功,服务器会返回 HTTP 200 OK
状态代码和帖子列表:
200 OK { "kind": "blogger#postList", "nextPageToken": "CgkIChiAkceVjiYQ0b2SAQ", "prevPageToken": "CgkIChDBwrK3mCYQ0b2SAQ", "items": [ { "kind": "blogger#post", "id": "7706273476706534553", "blog": { "id": "2399953" }, "published": "2011-08-01T19:58:00.000Z", "updated": "2011-08-01T19:58:51.947Z", "url": "http://buzz.blogger.com/2011/08/latest-updates-august-1st.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553", "title": "Latest updates, August 1st", "content": "elided for readability", "author": { "id": "401465483996", "displayName": "Brett Wiltshire", "url": "http://www.blogger.com/profile/01430672582309320414", "image": { "url": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png" } }, "replies": { "totalItems": "0", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553/comments" } }, { "kind": "blogger#post", "id": "6069922188027612413", elided for readability } ] }
检索特定帖子
您可以发送
对博文资源 URI 发出 GET
请求。帖子资源的 URI 采用以下格式:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553&key=YOUR-API-KEY
由于用户无需经过身份验证即可从公开博客中检索这些帖子,
就无需为请求提供 Authorization
HTTP 标头
GET
请求;但如果您不提供该标头,则需提供 API 密钥。
Blogger 还有私人博客,需要进行身份验证。
响应
如果请求成功,服务器会返回 HTTP
200 OK
状态代码以及帖子内容:
200 OK { "kind": "blogger#post", "id": "7706273476706534553", "blog": { "id": "2399953" }, "published": "2011-08-01T19:58:00.000Z", "updated": "2011-08-01T19:58:51.947Z", "url": "http://buzz.blogger.com/2011/08/latest-updates-august-1st.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553", "title": "Latest updates, August 1st", "content": "elided for readability", "author": { "id": "401465483996", "displayName": "Brett Wiltshire", "url": "http://www.blogger.com/profile/01430672582309320414", "image": { "url": "http://4.bp.blogspot.com/_YA50adQ-7vQ/S1gfR_6ufpI/AAAAAAAAAAk/1ErJGgRWZDg/S45/brett.png" } }, "replies": { "totalItems": "0", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/7706273476706534553/comments" } }
使用评论
检索帖子评论
您可以向评论集合 URI 发送 GET
请求,以检索某个帖子的评论列表。
评论集合采用以下格式:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments&key=YOUR-API-KEY
由于用户无需经过身份验证即可从公开博客检索评论,因此您无需在此 GET
请求中提供 Authorization
HTTP 标头;但如果您不提供该标头,则需要提供 API 密钥。
Blogger 还有私有博客, 身份验证。
响应
如果请求成功,服务器会返回 HTTP
200 OK
状态代码和注释列表:
200 OK { "kind": "blogger#commentList", "nextPageToken": "CgkIFBDwjvDXlyYQ0b2SARj9mZe9n8KsnlQ", "prevPageToken": "CgkIFBisvMGRlyYQ0b2SARj9mZe9n8KsnlQ", "items": [ { "kind": "blogger#comment", "id": "9200761938824362519", "post": { "id": "6069922188027612413" }, "blog": { "id": "2399953" }, "published": "2011-07-28T19:19:57.740Z", "updated": "2011-07-28T21:29:42.015Z", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519", "content": "elided", "author": { "id": "530579030283", "displayName": "elided", "url": "elided", "image": { "url": "elided" } } }, { "kind": "blogger#comment", "id": "400101178920857170", elided for readability } ] }
检索特定评论
您可以发送
对评论资源 URI 发出 GET
请求。
Comments 资源采用以下格式:
https://www.googleapis.com/blogger/v2/blogs/blogId/posts/postId/comments/commentId
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519&key=YOUR-API-KEY
由于用户无需经过身份验证即可从公开博客检索评论,因此您无需在此 GET
请求中提供 Authorization
HTTP 标头;但如果您不提供该标头,则需要提供 API 密钥。
Blogger 还有私有博客, 身份验证。
响应
如果请求成功,服务器会返回 HTTP
200 OK
状态代码和注释数据:
200 OK { "kind": "blogger#comment", "id": "9200761938824362519", "post": { "id": "6069922188027612413" }, "blog": { "id": "2399953" }, "published": "2011-07-28T19:19:57.740Z", "updated": "2011-07-28T21:29:42.015Z", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/2399953/posts/6069922188027612413/comments/9200761938824362519", "content": "elided", "author": { "id": "530579030283", "displayName": "elided", "url": "elided", "image": { "url": "elided" } } }
使用页面
检索博客的页面
您可以向“页面”集合 URI 发送 GET
请求,以检索博客的页面列表。页面集合的 URI 采用以下格式:
https://www.googleapis.com/blogger/v2/blogs/blogId/pages
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages&key=YOUR-API-KEY
由于用户无需经过身份验证即可从公开博客检索网页,因此您无需为此 GET
请求提供 Authorization
HTTP 标头;但如果您不提供该标头,则需要提供 API 密钥。
Blogger 还有私人博客,需要进行身份验证。
响应
如果请求成功,服务器会返回 HTTP
200 OK
状态代码和网页列表:
200 OK { "kind": "blogger#pageList", "items": [ { "kind": "blogger#page", "id": "273541696466681878", "blog": { "id": "4967929378133675647" }, "published": "2011-07-14T16:16:00.000Z", "updated": "2011-07-14T16:16:23.602Z", "url": "http://brettmorgan-test-blawg.blogspot.com/p/static-content.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878", "title": "Static Content", "content": "elided for readability", "author": { "id": "901569848744", "displayName": "brett", "url": "http://www.blogger.com/profile/16258312240222542576", "image": { "url": "https://resources.blogblog.com/img/b16-rounded.gif" } } } ] }
检索特定网页
您可以向“页面”资源 URI 发出 GET
请求,从博客中检索特定页面。网页资源的 URI 采用以下格式:
https://www.googleapis.com/blogger/v2/blogs/blogId/pages/pageId
请求
示例如下:
GET https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878&key=YOUR-API-KEY
由于用户无需经过身份验证即可从公开博客检索网页,因此您无需为此 GET
请求提供 Authorization
HTTP 标头;但如果您不提供该标头,则需要提供 API 密钥。
Blogger 还有私人博客,需要进行身份验证。
响应
如果请求成功,服务器会返回 HTTP
200 OK
状态代码和网页数据:
200 OK { "kind": "blogger#page", "id": "273541696466681878", "blog": { "id": "4967929378133675647" }, "published": "2011-07-14T16:16:00.000Z", "updated": "2011-07-14T16:16:23.602Z", "url": "http://brettmorgan-test-blawg.blogspot.com/p/static-content.html", "selfLink": "https://www.googleapis.com/blogger/v2/blogs/4967929378133675647/pages/273541696466681878", "title": "Static Content", "content": "elided for readability", "author": { "id": "901569848744", "displayName": "brett", "url": "http://www.blogger.com/profile/16258312240222542576", "image": { "url": "https://resources.blogblog.com/img/b16-rounded.gif" } } }
与用户合作
检索用户
您可以通过发送 HTTP GET
请求来检索用户信息
附加到用户资源 URI:
https://www.googleapis.com/blogger/v2/users/userId
请求
以下是用于列出用户博客的 GET
请求示例:
GET https://www.googleapis.com/blogger/v2/users/self
Authorization: /* OAuth 2.0 token here */
注意:用户必须经过身份验证才能
列出自己的信息,因此,您必须提供 Authorization
HTTP
标头替换为 GET
请求。
响应
如果请求成功,服务器会返回 HTTP
200 OK
状态代码以及指向用户
博客:
200 OK { "kind": "blogger#user", "id": "901569848744", "selfLink": "https://www.googleapis.com/blogger/v2/users/901569848744", "blogs": { "selfLink": "https://www.googleapis.com/blogger/v2/users/901569848744/blogs" } }
标准查询参数
以下查询参数可用于 Blogger API 中的所有方法和所有资源。
适用于所有 Blogger API 操作的查询参数记录在系统参数中。