<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="orkut_v2.html">Orkut API</a> . <a href="orkut_v2.comments.html">comments</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(commentId)</a></code></p>
<p class="firstline">Deletes an existing comment.</p>
<p class="toc_element">
  <code><a href="#get">get(commentId, hl=None)</a></code></p>
<p class="firstline">Retrieves an existing comment.</p>
<p class="toc_element">
  <code><a href="#insert">insert(activityId, body)</a></code></p>
<p class="firstline">Inserts a new comment to an activity.</p>
<p class="toc_element">
  <code><a href="#list">list(activityId, orderBy=None, pageToken=None, hl=None, maxResults=None)</a></code></p>
<p class="firstline">Retrieves a list of comments, possibly filtered.</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="delete">delete(commentId)</code>
  <pre>Deletes an existing comment.

Args:
  commentId: string, ID of the comment to remove. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(commentId, hl=None)</code>
  <pre>Retrieves an existing comment.

Args:
  commentId: string, ID of the comment to get. (required)
  hl: string, Specifies the interface language (host language) of your user interface.

Returns:
  An object of the form:

    {
    "inReplyTo": { # Link to the original activity where this comment was posted.
      "type": "A String", # Type of the post on activity stream being commented. Always text/html.
      "href": "A String", # Link to the post on activity stream being commented.
      "ref": "A String", # Unique identifier of the post on activity stream being commented.
      "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
    },
    "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
    "links": [ # List of resources for the comment.
      { # Links to resources related to the parent object.
        "href": "A String", # URL of the link.
        "type": "A String", # Media type of the link.
        "rel": "A String", # Relation between the resource and the parent object.
        "title": "A String", # Title of the link.
      },
    ],
    "actor": { # The person who posted the comment.
      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
      "image": { # Image data about the author.
        "url": "A String", # A URL that points to a thumbnail photo of the author.
      },
      "displayName": "A String", # The name of the author, suitable for display.
      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
    },
    "content": "A String", # The content of the comment in text/html
    "published": "A String", # The time the comment was initially published, in RFC 3339 format.
    "id": "A String", # The unique ID for the comment.
  }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(activityId, body)</code>
  <pre>Inserts a new comment to an activity.

Args:
  activityId: string, The ID of the activity to contain the new comment. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "inReplyTo": { # Link to the original activity where this comment was posted.
    "type": "A String", # Type of the post on activity stream being commented. Always text/html.
    "href": "A String", # Link to the post on activity stream being commented.
    "ref": "A String", # Unique identifier of the post on activity stream being commented.
    "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
  },
  "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
  "links": [ # List of resources for the comment.
    { # Links to resources related to the parent object.
      "href": "A String", # URL of the link.
      "type": "A String", # Media type of the link.
      "rel": "A String", # Relation between the resource and the parent object.
      "title": "A String", # Title of the link.
    },
  ],
  "actor": { # The person who posted the comment.
    "url": "A String", # The URL of the author who posted the comment [not yet implemented]
    "image": { # Image data about the author.
      "url": "A String", # A URL that points to a thumbnail photo of the author.
    },
    "displayName": "A String", # The name of the author, suitable for display.
    "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
  },
  "content": "A String", # The content of the comment in text/html
  "published": "A String", # The time the comment was initially published, in RFC 3339 format.
  "id": "A String", # The unique ID for the comment.
}


Returns:
  An object of the form:

    {
    "inReplyTo": { # Link to the original activity where this comment was posted.
      "type": "A String", # Type of the post on activity stream being commented. Always text/html.
      "href": "A String", # Link to the post on activity stream being commented.
      "ref": "A String", # Unique identifier of the post on activity stream being commented.
      "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
    },
    "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
    "links": [ # List of resources for the comment.
      { # Links to resources related to the parent object.
        "href": "A String", # URL of the link.
        "type": "A String", # Media type of the link.
        "rel": "A String", # Relation between the resource and the parent object.
        "title": "A String", # Title of the link.
      },
    ],
    "actor": { # The person who posted the comment.
      "url": "A String", # The URL of the author who posted the comment [not yet implemented]
      "image": { # Image data about the author.
        "url": "A String", # A URL that points to a thumbnail photo of the author.
      },
      "displayName": "A String", # The name of the author, suitable for display.
      "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
    },
    "content": "A String", # The content of the comment in text/html
    "published": "A String", # The time the comment was initially published, in RFC 3339 format.
    "id": "A String", # The unique ID for the comment.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(activityId, orderBy=None, pageToken=None, hl=None, maxResults=None)</code>
  <pre>Retrieves a list of comments, possibly filtered.

Args:
  activityId: string, The ID of the activity containing the comments. (required)
  orderBy: string, Sort search results.
    Allowed values
      ascending - Use ascending sort order.
      descending - Use descending sort order.
  pageToken: string, A continuation token that allows pagination.
  hl: string, Specifies the interface language (host language) of your user interface.
  maxResults: integer, The maximum number of activities to include in the response.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The value of pageToken query parameter in comments.list request to get the next page, if there are more to retrieve.
    "items": [ # List of comments retrieved.
      {
        "inReplyTo": { # Link to the original activity where this comment was posted.
          "type": "A String", # Type of the post on activity stream being commented. Always text/html.
          "href": "A String", # Link to the post on activity stream being commented.
          "ref": "A String", # Unique identifier of the post on activity stream being commented.
          "rel": "inReplyTo", # Relationship between the comment and the post on activity stream being commented. Always inReplyTo.
        },
        "kind": "orkut#comment", # Identifies this resource as a comment. Value: "orkut#comment"
        "links": [ # List of resources for the comment.
          { # Links to resources related to the parent object.
            "href": "A String", # URL of the link.
            "type": "A String", # Media type of the link.
            "rel": "A String", # Relation between the resource and the parent object.
            "title": "A String", # Title of the link.
          },
        ],
        "actor": { # The person who posted the comment.
          "url": "A String", # The URL of the author who posted the comment [not yet implemented]
          "image": { # Image data about the author.
            "url": "A String", # A URL that points to a thumbnail photo of the author.
          },
          "displayName": "A String", # The name of the author, suitable for display.
          "id": "A String", # Unique identifier of the person who posted the comment. This is the person's OpenSocial ID.
        },
        "content": "A String", # The content of the comment in text/html
        "published": "A String", # The time the comment was initially published, in RFC 3339 format.
        "id": "A String", # The unique ID for the comment.
      },
    ],
    "kind": "orkut#commentList", # Identifies this resource as a collection of comments. Value: "orkut#commentList"
    "previousPageToken": "A String", # The value of pageToken query parameter in comments.list request to get the previous page, if there are more to retrieve.
  }</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>