如果博文发布在私密博客上,则需要授权。如果帖子位于公开的博客上,则无需授权即可调用此方法。
请求
HTTP 请求
GET https://www.googleapis.com/blogger/v3/blogs/blogId/posts
参数
| 参数名称 | 值 | 说明 | 
|---|---|---|
| 必需参数 | ||
| blogId | string | 要从中提取帖子的博客的 ID。 | 
| 可选参数 | ||
| endDate | datetime | 要提取的最新帖子日期,采用 RFC 3339 格式的 date-time。 | 
| fetchBodies | boolean | 是否包含帖子的正文内容(默认值为 true)。如果不需要帖子正文,应将此属性设置为 false,以帮助最大限度地减少流量。
          (默认值: true) | 
| fetchImages | boolean | 是否包含每篇帖子的图片网址元数据。 | 
| labels | string | 要搜索的标签的逗号分隔列表。 | 
| maxResults | unsigned integer | 要提取的帖子数量上限。 | 
| orderBy | string | 应用于结果的排序顺序。 可接受的值包括: 
 | 
| sortOption | string | UNAVAILABLE NOW应用于结果的排序方向。 可接受的值: 
 | 
| pageToken | string | 如果请求已分页,则为延续令牌。 | 
| startDate | datetime | 要提取的最早帖子日期,采用 RFC 3339 格式的 date-time。 | 
| status | string | 可接受的值包括: 
 | 
| view | string | 可接受的值包括: 
 | 
请求正文
使用此方法时请勿提供请求正文。
响应
如果成功,此方法将返回采用以下结构的响应正文:
{
  "kind": "blogger#postList",
  "nextPageToken": string,
  "items": [
    posts Resource
  ]
}| 属性名称 | 值 | 说明 | 备注 | 
|---|---|---|---|
| kind | string | 相应实体的种类。始终为 blogger#postList。 | |
| nextPageToken | string | 用于获取下一页的分页令牌(如果有)。 | |
| items[] | list | 相应博客的帖子列表。 | 
示例
注意:此方法的代码示例并未涵盖所有支持的编程语言(请参阅客户端库页面,查看支持的语言清单)。
Java
使用 Java 客户端库
// The BlogId for the Blogger Buzz blog String BUZZ_BLOG_ID = "2399953";
// Configure the Java API Client for Installed Native App
HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();
// Configure the Installed App OAuth2 flow.
Credential credential = OAuth2Native.authorize(HTTP_TRANSPORT,
JSON_FACTORY, new LocalServerReceiver(),
Arrays.asList(BloggerScopes.BLOGGER));
// Construct the Blogger API access facade object.
Blogger blogger = Blogger.builder(HTTP_TRANSPORT, JSON_FACTORY)
.setApplicationName("Blogger-PostsList-Snippet/1.0")
.setHttpRequestInitializer(credential).build();
// The request action.
List postsListAction = blogger.posts().list(BUZZ_BLOG_ID);
// Restrict the result content to just the data we need.
postsListAction.setFields("items(author/displayName,content,published,title,url),nextPageToken");
// This step sends the request to the server.
PostList posts = postsListAction.execute();
// Now we can navigate the response.
int postCount = 0;
int pageCount = 0;
while (posts.getItems() != null && !posts.getItems().isEmpty()) {
for (Post post : posts.getItems()) {
System.out.println("Post #"+ ++postCount);
System.out.println("\tTitle: "+post.getTitle());
System.out.println("\tAuthor: "+post.getAuthor().getDisplayName());
System.out.println("\tPublished: "+post.getPublished());
System.out.println("\tURL: "+post.getUrl());
System.out.println("\tContent: "+post.getContent());
}
// Pagination logic
String pageToken = posts.getNextPageToken();
if (pageToken == null || ++pageCount >= 5) {
break;
}
System.out.println("-- Next page of posts");
postsListAction.setPageToken(pageToken);
posts = postsListAction.execute();
}
试试看!
使用下面的 API Explorer 对实际数据调用此方法,然后查看响应。
