<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="blogger_v2.html">Blogger API v3</a> . <a href="blogger_v2.posts.html">posts</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(blogId, postId, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a post by blog id and post id</p>
<p class="toc_element">
  <code><a href="#list">list(blogId, maxResults=None, startDate=None, fetchBodies=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists posts.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(blogId, postId, x__xgafv=None)</code>
  <pre>Gets a post by blog id and post id

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this Post was last updated.
    &quot;replies&quot;: { # The container of comments on this Post.
      &quot;items&quot;: [ # The List of Comments for this Post.
        {
          &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
          &quot;kind&quot;: &quot;A String&quot;, # The kind of this entry. Always blogger#comment.
          &quot;inReplyTo&quot;: { # Data about the comment this is in reply to.
            &quot;id&quot;: &quot;A String&quot;, # The identified of the parent of this comment.
          },
          &quot;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
          &quot;post&quot;: { # Data about the post containing this comment.
            &quot;id&quot;: &quot;A String&quot;, # The identifier of the post containing this comment.
          },
          &quot;blog&quot;: { # Data about the blog containing this comment.
            &quot;id&quot;: &quot;A String&quot;, # The identifier of the blog containing this comment.
          },
          &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
          &quot;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
          &quot;author&quot;: { # The author of this Comment.
            &quot;image&quot;: { # The creator&#x27;s avatar.
              &quot;url&quot;: &quot;A String&quot;, # The creator&#x27;s avatar URL.
            },
            &quot;id&quot;: &quot;A String&quot;, # The identifier of the creator.
            &quot;displayName&quot;: &quot;A String&quot;, # The display name.
            &quot;url&quot;: &quot;A String&quot;, # The URL of the creator&#x27;s Profile page.
          },
          &quot;id&quot;: &quot;A String&quot;, # The identifier for this resource.
          &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
        },
      ],
      &quot;totalItems&quot;: &quot;A String&quot;, # The count of comments on this post.
      &quot;selfLink&quot;: &quot;A String&quot;, # The URL of the comments on this post.
    },
    &quot;id&quot;: &quot;A String&quot;, # The identifier of this Post.
    &quot;customMetaData&quot;: &quot;A String&quot;, # The JSON meta-data for the Post.
    &quot;readerComments&quot;: &quot;A String&quot;, # Comment control and display setting for readers of this post.
    &quot;blog&quot;: { # Data about the blog containing this Post.
      &quot;id&quot;: &quot;A String&quot;, # The identifier of the Blog that contains this Post.
    },
    &quot;location&quot;: { # The location for geotagged posts.
      &quot;span&quot;: &quot;A String&quot;, # Location&#x27;s viewport span. Can be used when rendering a map preview.
      &quot;name&quot;: &quot;A String&quot;, # Location name.
      &quot;lat&quot;: 3.14, # Location&#x27;s latitude.
      &quot;lng&quot;: 3.14, # Location&#x27;s longitude.
    },
    &quot;kind&quot;: &quot;A String&quot;, # The kind of this entity. Always blogger#post.
    &quot;author&quot;: { # The author of this Post.
      &quot;image&quot;: { # The creator&#x27;s avatar.
        &quot;url&quot;: &quot;A String&quot;, # The creator&#x27;s avatar URL.
      },
      &quot;url&quot;: &quot;A String&quot;, # The URL of the creator&#x27;s Profile page.
      &quot;displayName&quot;: &quot;A String&quot;, # The display name.
      &quot;id&quot;: &quot;A String&quot;, # The identifier of the creator.
    },
    &quot;title&quot;: &quot;A String&quot;, # The title of the Post.
    &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
    &quot;titleLink&quot;: &quot;A String&quot;, # The title link URL, similar to atom&#x27;s related link.
    &quot;images&quot;: [ # Display image for the Post.
      {
        &quot;url&quot;: &quot;A String&quot;,
      },
    ],
    &quot;content&quot;: &quot;A String&quot;, # The content of the Post. May contain HTML markup.
    &quot;status&quot;: &quot;A String&quot;, # Status of the post. Only set for admin-level requests.
    &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this Post was published.
    &quot;etag&quot;: &quot;A String&quot;, # Etag of the resource.
    &quot;url&quot;: &quot;A String&quot;, # The URL where this Post is displayed.
    &quot;labels&quot;: [ # The list of labels this Post was tagged with.
      &quot;A String&quot;,
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(blogId, maxResults=None, startDate=None, fetchBodies=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists posts.

Args:
  blogId: string, A parameter (required)
  maxResults: integer, A parameter
  startDate: string, A parameter
  fetchBodies: boolean, A parameter
  pageToken: string, A parameter
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;nextPageToken&quot;: &quot;A String&quot;, # Pagination token to fetch the next page, if one exists.
    &quot;prevPageToken&quot;: &quot;A String&quot;, # Pagination token to fetch the previous page, if one exists.
    &quot;items&quot;: [ # The list of Posts for this Blog.
      {
        &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this Post was last updated.
        &quot;replies&quot;: { # The container of comments on this Post.
          &quot;items&quot;: [ # The List of Comments for this Post.
            {
              &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
              &quot;kind&quot;: &quot;A String&quot;, # The kind of this entry. Always blogger#comment.
              &quot;inReplyTo&quot;: { # Data about the comment this is in reply to.
                &quot;id&quot;: &quot;A String&quot;, # The identified of the parent of this comment.
              },
              &quot;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
              &quot;post&quot;: { # Data about the post containing this comment.
                &quot;id&quot;: &quot;A String&quot;, # The identifier of the post containing this comment.
              },
              &quot;blog&quot;: { # Data about the blog containing this comment.
                &quot;id&quot;: &quot;A String&quot;, # The identifier of the blog containing this comment.
              },
              &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
              &quot;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
              &quot;author&quot;: { # The author of this Comment.
                &quot;image&quot;: { # The creator&#x27;s avatar.
                  &quot;url&quot;: &quot;A String&quot;, # The creator&#x27;s avatar URL.
                },
                &quot;id&quot;: &quot;A String&quot;, # The identifier of the creator.
                &quot;displayName&quot;: &quot;A String&quot;, # The display name.
                &quot;url&quot;: &quot;A String&quot;, # The URL of the creator&#x27;s Profile page.
              },
              &quot;id&quot;: &quot;A String&quot;, # The identifier for this resource.
              &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
            },
          ],
          &quot;totalItems&quot;: &quot;A String&quot;, # The count of comments on this post.
          &quot;selfLink&quot;: &quot;A String&quot;, # The URL of the comments on this post.
        },
        &quot;id&quot;: &quot;A String&quot;, # The identifier of this Post.
        &quot;customMetaData&quot;: &quot;A String&quot;, # The JSON meta-data for the Post.
        &quot;readerComments&quot;: &quot;A String&quot;, # Comment control and display setting for readers of this post.
        &quot;blog&quot;: { # Data about the blog containing this Post.
          &quot;id&quot;: &quot;A String&quot;, # The identifier of the Blog that contains this Post.
        },
        &quot;location&quot;: { # The location for geotagged posts.
          &quot;span&quot;: &quot;A String&quot;, # Location&#x27;s viewport span. Can be used when rendering a map preview.
          &quot;name&quot;: &quot;A String&quot;, # Location name.
          &quot;lat&quot;: 3.14, # Location&#x27;s latitude.
          &quot;lng&quot;: 3.14, # Location&#x27;s longitude.
        },
        &quot;kind&quot;: &quot;A String&quot;, # The kind of this entity. Always blogger#post.
        &quot;author&quot;: { # The author of this Post.
          &quot;image&quot;: { # The creator&#x27;s avatar.
            &quot;url&quot;: &quot;A String&quot;, # The creator&#x27;s avatar URL.
          },
          &quot;url&quot;: &quot;A String&quot;, # The URL of the creator&#x27;s Profile page.
          &quot;displayName&quot;: &quot;A String&quot;, # The display name.
          &quot;id&quot;: &quot;A String&quot;, # The identifier of the creator.
        },
        &quot;title&quot;: &quot;A String&quot;, # The title of the Post.
        &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
        &quot;titleLink&quot;: &quot;A String&quot;, # The title link URL, similar to atom&#x27;s related link.
        &quot;images&quot;: [ # Display image for the Post.
          {
            &quot;url&quot;: &quot;A String&quot;,
          },
        ],
        &quot;content&quot;: &quot;A String&quot;, # The content of the Post. May contain HTML markup.
        &quot;status&quot;: &quot;A String&quot;, # Status of the post. Only set for admin-level requests.
        &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this Post was published.
        &quot;etag&quot;: &quot;A String&quot;, # Etag of the resource.
        &quot;url&quot;: &quot;A String&quot;, # The URL where this Post is displayed.
        &quot;labels&quot;: [ # The list of labels this Post was tagged with.
          &quot;A String&quot;,
        ],
      },
    ],
    &quot;etag&quot;: &quot;A String&quot;, # Etag of the response.
    &quot;kind&quot;: &quot;A String&quot;, # The kind of this entity. Always blogger#postList.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>