Xojo Plugin Google Drive: List Comments on a File

Back to Index

Lists the comment on a file. The file is specified by file ID. This example lists comments on the file having id = "0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw".

Documentation: https://developers.google.com/drive/v3/reference/comments/list


Dim rest As New Chilkat.Rest
Dim success As Boolean

//   Provide a previously obtained OAuth2 access token.
Dim oauth2 As New Chilkat.OAuth2
oauth2.AccessToken = "OAUTH2_ACCESS_TOKEN"
rest.SetAuthOAuth2(oauth2)

success = rest.Connect("www.googleapis.com",443,True,True)
If (success <> True) Then
    System.DebugLog(rest.LastErrorText)
    Return
End If

rest.AddQueryParam("fields","comments")

Dim sbJson As New Chilkat.StringBuilder
success = rest.FullRequestNoBodySb("GET","/drive/v3/files/0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw/comments",sbJson)
If (success <> True) Then
    System.DebugLog(rest.LastErrorText)
    Return
End If

If (rest.ResponseStatusCode <> 200) Then
    System.DebugLog("Received error response code: " + Str(rest.ResponseStatusCode))
    System.DebugLog("Response body:")
    System.DebugLog(sbJson.GetAsString())
    Return
End If

Dim json As New Chilkat.JsonObject
json.LoadSb(sbJson)

//  The following code parses the JSON response.
//  A sample JSON response is shown below the sample code.
Dim i As Int32
Dim count_i As Int32
Dim kind As String
Dim id As String
Dim createdTime As String
Dim modifiedTime As String
Dim authorKind As String
Dim authorDisplayName As String
Dim authorPhotoLink As String
Dim authorMe As Boolean
Dim htmlContent As String
Dim content As String
Dim deleted As Boolean
Dim resolved As Boolean
Dim j As Int32
Dim count_j As Int32
Dim action As String

i = 0
count_i = json.SizeOfArray("comments")
While i < count_i
    json.I = i
    kind = json.StringOf("comments[i].kind")
    id = json.StringOf("comments[i].id")
    createdTime = json.StringOf("comments[i].createdTime")
    modifiedTime = json.StringOf("comments[i].modifiedTime")
    authorKind = json.StringOf("comments[i].author.kind")
    authorDisplayName = json.StringOf("comments[i].author.displayName")
    authorPhotoLink = json.StringOf("comments[i].author.photoLink")
    authorMe = json.BoolOf("comments[i].author.me")
    htmlContent = json.StringOf("comments[i].htmlContent")
    content = json.StringOf("comments[i].content")
    deleted = json.BoolOf("comments[i].deleted")
    resolved = json.BoolOf("comments[i].resolved")
    j = 0
    count_j = json.SizeOfArray("comments[i].replies")
    While j < count_j
        json.J = j
        kind = json.StringOf("comments[i].replies[j].kind")
        id = json.StringOf("comments[i].replies[j].id")
        createdTime = json.StringOf("comments[i].replies[j].createdTime")
        modifiedTime = json.StringOf("comments[i].replies[j].modifiedTime")
        authorKind = json.StringOf("comments[i].replies[j].author.kind")
        authorDisplayName = json.StringOf("comments[i].replies[j].author.displayName")
        authorPhotoLink = json.StringOf("comments[i].replies[j].author.photoLink")
        authorMe = json.BoolOf("comments[i].replies[j].author.me")
        htmlContent = json.StringOf("comments[i].replies[j].htmlContent")
        content = json.StringOf("comments[i].replies[j].content")
        deleted = json.BoolOf("comments[i].replies[j].deleted")
        action = json.StringOf("comments[i].replies[j].action")
        j = j + 1
    Wend
    i = i + 1
Wend

System.DebugLog("Example Completed.")

Sample JSON Response Body

{
  "comments": [
    {
      "kind": "drive#comment",
      "id": "AAAABg7vWfw",
      "createdTime": "2017-11-13T17:51:57.906Z",
      "modifiedTime": "2017-11-13T17:51:57.906Z",
      "author": {
        "kind": "drive#user",
        "displayName": "Matt Fausey",
        "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
        "me": true
      },
      "htmlContent": "This is the 2nd test comment about this file...",
      "content": "This is the 2nd test comment about this file...",
      "deleted": false,
      "resolved": false,
      "replies": [
      ]
    },
    {
      "kind": "drive#comment",
      "id": "AAAABg7tSGw",
      "createdTime": "2017-11-13T17:43:05.735Z",
      "modifiedTime": "2017-11-13T18:25:11.828Z",
      "author": {
        "kind": "drive#user",
        "displayName": "Matt Fausey",
        "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
        "me": true
      },
      "htmlContent": "This is a test comment about this file...",
      "content": "This is a test comment about this file...",
      "deleted": false,
      "resolved": true,
      "replies": [
        {
          "kind": "drive#reply",
          "id": "AAAABg76H9g",
          "createdTime": "2017-11-13T18:24:12.782Z",
          "modifiedTime": "2017-11-13T18:24:12.782Z",
          "author": {
            "kind": "drive#user",
            "displayName": "Matt Fausey",
            "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
            "me": true
          },
          "htmlContent": "This is the first reply to a comment.",
          "content": "This is the first reply to a comment.",
          "deleted": false,
          "action": "reopen"
        },
        {
          "kind": "drive#reply",
          "id": "AAAABg76H9k",
          "createdTime": "2017-11-13T18:24:45.085Z",
          "modifiedTime": "2017-11-13T18:24:45.085Z",
          "author": {
            "kind": "drive#user",
            "displayName": "Matt Fausey",
            "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
            "me": true
          },
          "htmlContent": "This is the second reply to a comment.",
          "content": "This is the second reply to a comment.",
          "deleted": false,
          "action": "resolve"
        },
        {
          "kind": "drive#reply",
          "id": "AAAABg76H9o",
          "createdTime": "2017-11-13T18:25:11.828Z",
          "modifiedTime": "2017-11-13T18:25:11.828Z",
          "author": {
            "kind": "drive#user",
            "displayName": "Matt Fausey",
            "photoLink": "//ssl.gstatic.com/s2/profiles/images/silhouette96.png",
            "me": true
          },
          "htmlContent": "This is the third reply to a comment.",
          "content": "This is the third reply to a comment.",
          "deleted": false,
          "action": "resolve"
        }
      ]
    }
  ]
}