VB.NET UWP/WinRT 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 = Await rest.ConnectAsync("www.googleapis.com",443,True,True)
If (success <> True) Then
    Debug.WriteLine(rest.LastErrorText)
    Exit Sub
End If


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

Dim sbJson As New Chilkat.StringBuilder
success = Await rest.FullRequestNoBodySbAsync("GET","/drive/v3/files/0B5drHSd5ZHwgc3RhcnRlcl9maWxlX2Rhc2hlclYw/comments",sbJson)
If (success <> True) Then
    Debug.WriteLine(rest.LastErrorText)
    Exit Sub
End If


If (rest.ResponseStatusCode <> 200) Then
    Debug.WriteLine("Received error response code: " & rest.ResponseStatusCode)
    Debug.WriteLine("Response body:")
    Debug.WriteLine(sbJson.GetAsString())
    Exit Sub
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 Integer
Dim count_i As Integer
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 Integer
Dim count_j As Integer
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
    End While
    i = i + 1
End While



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