<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_v3.html">Blogger API v3</a> . <a href="blogger_v3.comments.html">comments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#approve">approve(blogId, postId, commentId, x__xgafv=None)</a></code></p>
<p class="firstline">Marks a comment as not spam by blog id, post id and comment id.</p>
<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="#delete">delete(blogId, postId, commentId, x__xgafv=None)</a></code></p>
<p class="firstline">Deletes a comment by blog id, post id and comment id.</p>
<p class="toc_element">
  <code><a href="#get">get(blogId, postId, commentId, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a comment by id.</p>
<p class="toc_element">
  <code><a href="#list">list(blogId, postId, pageToken=None, maxResults=None, startDate=None, fetchBodies=None, status=None, endDate=None, view=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists comments.</p>
<p class="toc_element">
  <code><a href="#listByBlog">listByBlog(blogId, maxResults=None, status=None, endDate=None, fetchBodies=None, startDate=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists comments by blog.</p>
<p class="toc_element">
  <code><a href="#listByBlog_next">listByBlog_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</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>
<p class="toc_element">
  <code><a href="#markAsSpam">markAsSpam(blogId, postId, commentId, x__xgafv=None)</a></code></p>
<p class="firstline">Marks a comment as spam by blog id, post id and comment id.</p>
<p class="toc_element">
  <code><a href="#removeContent">removeContent(blogId, postId, commentId, x__xgafv=None)</a></code></p>
<p class="firstline">Removes the content of a comment by blog id, post id and comment id.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="approve">approve(blogId, postId, commentId, x__xgafv=None)</code>
  <pre>Marks a comment as not spam by blog id, post id and comment id.

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  commentId: 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;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
    &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
    &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;id&quot;: &quot;A String&quot;, # The identifier for this resource.
    &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;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;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
    &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
    &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
    &quot;author&quot;: { # The author of this Comment.
      &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;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.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="delete">delete(blogId, postId, commentId, x__xgafv=None)</code>
  <pre>Deletes a comment by blog id, post id and comment id.

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  commentId: string, A parameter (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(blogId, postId, commentId, view=None, x__xgafv=None)</code>
  <pre>Gets a comment by id.

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  commentId: string, A parameter (required)
  view: string, A parameter
    Allowed values
      VIEW_TYPE_UNSPECIFIED - 
      READER - 
      AUTHOR - 
      ADMIN - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
    &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
    &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;id&quot;: &quot;A String&quot;, # The identifier for this resource.
    &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;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;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
    &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
    &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
    &quot;author&quot;: { # The author of this Comment.
      &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;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.
    },
  }</pre>
</div>

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

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  pageToken: string, A parameter
  maxResults: integer, A parameter
  startDate: string, A parameter
  fetchBodies: boolean, A parameter
  status: string, A parameter
    Allowed values
      LIVE - 
      EMPTIED - 
      PENDING - 
      SPAM - 
  endDate: string, A parameter
  view: string, A parameter
    Allowed values
      VIEW_TYPE_UNSPECIFIED - 
      READER - 
      AUTHOR - 
      ADMIN - 
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;kind&quot;: &quot;A String&quot;, # The kind of this entry. Always blogger#commentList.
    &quot;etag&quot;: &quot;A String&quot;, # Etag of the response.
    &quot;items&quot;: [ # The List of Comments for a Post.
      {
        &quot;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
        &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
        &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;id&quot;: &quot;A String&quot;, # The identifier for this resource.
        &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;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;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
        &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
        &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
        &quot;author&quot;: { # The author of this Comment.
          &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;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;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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listByBlog">listByBlog(blogId, maxResults=None, status=None, endDate=None, fetchBodies=None, startDate=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists comments by blog.

Args:
  blogId: string, A parameter (required)
  maxResults: integer, A parameter
  status: string, A parameter (repeated)
    Allowed values
      LIVE - 
      EMPTIED - 
      PENDING - 
      SPAM - 
  endDate: string, A parameter
  fetchBodies: boolean, A parameter
  startDate: string, 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;kind&quot;: &quot;A String&quot;, # The kind of this entry. Always blogger#commentList.
    &quot;etag&quot;: &quot;A String&quot;, # Etag of the response.
    &quot;items&quot;: [ # The List of Comments for a Post.
      {
        &quot;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
        &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
        &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;id&quot;: &quot;A String&quot;, # The identifier for this resource.
        &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;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;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
        &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
        &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
        &quot;author&quot;: { # The author of this Comment.
          &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;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;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.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listByBlog_next">listByBlog_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>

<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>

<div class="method">
    <code class="details" id="markAsSpam">markAsSpam(blogId, postId, commentId, x__xgafv=None)</code>
  <pre>Marks a comment as spam by blog id, post id and comment id.

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  commentId: 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;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
    &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
    &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;id&quot;: &quot;A String&quot;, # The identifier for this resource.
    &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;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;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
    &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
    &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
    &quot;author&quot;: { # The author of this Comment.
      &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;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.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="removeContent">removeContent(blogId, postId, commentId, x__xgafv=None)</code>
  <pre>Removes the content of a comment by blog id, post id and comment id.

Args:
  blogId: string, A parameter (required)
  postId: string, A parameter (required)
  commentId: 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;content&quot;: &quot;A String&quot;, # The actual content of the comment. May include HTML markup.
    &quot;published&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was published.
    &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;id&quot;: &quot;A String&quot;, # The identifier for this resource.
    &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;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;status&quot;: &quot;A String&quot;, # The status of the comment (only populated for admin users).
    &quot;selfLink&quot;: &quot;A String&quot;, # The API REST URL to fetch this resource from.
    &quot;updated&quot;: &quot;A String&quot;, # RFC 3339 date-time when this comment was last updated.
    &quot;author&quot;: { # The author of this Comment.
      &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;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.
    },
  }</pre>
</div>

</body></html>