Visual Basic 6.0 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 ChilkatRest
Dim success As Long

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

success = rest.Connect("www.googleapis.com",443,1,1)
If (success <> 1) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

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

Dim sbJson As New ChilkatStringBuilder
success = rest.FullRequestNoBodySb("GET","/drive/v3/files/0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw/comments",sbJson)
If (success <> 1) Then
    Debug.Print rest.LastErrorText
    Exit Sub
End If

If (rest.ResponseStatusCode <> 200) Then
    Debug.Print "Received error response code: " & rest.ResponseStatusCode
    Debug.Print "Response body:"
    Debug.Print sbJson.GetAsString()
    Exit Sub
End If

Dim json As New ChilkatJsonObject
success = json.LoadSb(sbJson)

'  The following code parses the JSON response.
'  A sample JSON response is shown below the sample code.
Dim i As Long
Dim count_i As Long
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 Long
Dim htmlContent As String
Dim content As String
Dim deleted As Long
Dim resolved As Long
Dim j As Long
Dim count_j As Long
Dim action As String

i = 0
count_i = json.SizeOfArray("comments")
Do 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")
    Do 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
    Loop
    i = i + 1
Loop

Debug.Print "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"
        }
      ]
    }
  ]
}