<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</a> . <a href="blogger_v3.postUserInfos.html">postUserInfos</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(userId, blogId, postId, maxComments=None)</a></code></p>
<p class="firstline">Gets one post and user info pair, by post ID and user ID. The post user info contains per-user information about the post, such as access rights, specific to the user.</p>
<p class="toc_element">
  <code><a href="#list">list(userId, blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, view=None)</a></code></p>
<p class="firstline">Retrieves a list of post and post user info pairs, possibly filtered. The post user info contains per-user information about the post, such as access rights, specific to the user.</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="get">get(userId, blogId, postId, maxComments=None)</code>
  <pre>Gets one post and user info pair, by post ID and user ID. The post user info contains per-user information about the post, such as access rights, specific to the user.

Args:
  userId: string, ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)
  blogId: string, The ID of the blog. (required)
  postId: string, The ID of the post to get. (required)
  maxComments: integer, Maximum number of comments to pull back on a post.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="list">list(userId, blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, view=None)</code>
  <pre>Retrieves a list of post and post user info pairs, possibly filtered. The post user info contains per-user information about the post, such as access rights, specific to the user.

Args:
  userId: string, ID of the user for the per-user information to be fetched. Either the word 'self' (sans quote marks) or the user's profile identifier. (required)
  blogId: string, ID of the blog to fetch posts from. (required)
  orderBy: string, Sort order applied to search results. Default is published.
    Allowed values
      published - Order by the date the post was published
      updated - Order by the date the post was last updated
  startDate: string, Earliest post date to fetch, a date-time with RFC 3339 formatting.
  endDate: string, Latest post date to fetch, a date-time with RFC 3339 formatting.
  labels: string, Comma-separated list of labels to search for.
  pageToken: string, Continuation token if the request is paged.
  status: string, A parameter (repeated)
    Allowed values
      draft - Draft posts
      live - Published posts
      scheduled - Posts that are scheduled to publish in future.
  maxResults: integer, Maximum number of posts to fetch.
  fetchBodies: boolean, Whether the body content of posts is included. Default is false.
  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
    Allowed values
      ADMIN - Admin level detail
      AUTHOR - Author level detail
      READER - Reader level detail

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
    "items": [ # The list of Posts with User information for the post, for this Blog.
      {
        "kind": "blogger#postUserInfo", # The kind of this entity. Always blogger#postUserInfo
        "post": { # The Post resource.
          "status": "A String", # Status of the post. Only set for admin-level requests
          "content": "A String", # The content of the Post. May contain HTML markup.
          "kind": "blogger#post", # The kind of this entity. Always blogger#post
          "titleLink": "A String", # The title link URL, similar to atom's related link.
          "author": { # The author of this Post.
            "url": "A String", # The URL of the Post creator's Profile page.
            "image": { # The Post author's avatar.
              "url": "A String", # The Post author's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Post creator.
          },
          "replies": { # The container of comments on this Post.
            "totalItems": "A String", # The count of comments on this post.
            "items": [ # The List of Comments for this Post.
              {
                "status": "A String", # The status of the comment (only populated for admin users)
                "content": "A String", # The actual content of the comment. May include HTML markup.
                "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
                "inReplyTo": { # Data about the comment this is in reply to.
                  "id": "A String", # The identified of the parent of this comment.
                },
                "author": { # The author of this Comment.
                  "url": "A String", # The URL of the Comment creator's Profile page.
                  "image": { # The comment creator's avatar.
                    "url": "A String", # The comment creator's avatar URL.
                  },
                  "displayName": "A String", # The display name.
                  "id": "A String", # The identifier of the Comment creator.
                },
                "updated": "A String", # RFC 3339 date-time when this comment was last updated.
                "blog": { # Data about the blog containing this comment.
                  "id": "A String", # The identifier of the blog containing this comment.
                },
                "published": "A String", # RFC 3339 date-time when this comment was published.
                "post": { # Data about the post containing this comment.
                  "id": "A String", # The identifier of the post containing this comment.
                },
                "id": "A String", # The identifier for this resource.
                "selfLink": "A String", # The API REST URL to fetch this resource from.
              },
            ],
            "selfLink": "A String", # The URL of the comments on this post.
          },
          "readerComments": "A String", # Comment control and display setting for readers of this post.
          "labels": [ # The list of labels this Post was tagged with.
            "A String",
          ],
          "customMetaData": "A String", # The JSON meta-data for the Post.
          "updated": "A String", # RFC 3339 date-time when this Post was last updated.
          "blog": { # Data about the blog containing this Post.
            "id": "A String", # The identifier of the Blog that contains this Post.
          },
          "url": "A String", # The URL where this Post is displayed.
          "etag": "A String", # Etag of the resource.
          "location": { # The location for geotagged posts.
            "lat": 3.14, # Location's latitude.
            "lng": 3.14, # Location's longitude.
            "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
            "name": "A String", # Location name.
          },
          "published": "A String", # RFC 3339 date-time when this Post was published.
          "images": [ # Display image for the Post.
            {
              "url": "A String",
            },
          ],
          "title": "A String", # The title of the Post.
          "id": "A String", # The identifier of this Post.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
        "post_user_info": { # Information about a User for the Post.
          "kind": "blogger#postPerUserInfo", # The kind of this entity. Always blogger#postPerUserInfo
          "postId": "A String", # ID of the Post resource.
          "userId": "A String", # ID of the User.
          "blogId": "A String", # ID of the Blog that the post resource belongs to.
          "hasEditAccess": True or False, # True if the user has Author level access to the post.
        },
      },
    ],
    "kind": "blogger#postUserInfosList", # 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 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

</body></html>