Xojo Plugin Google Drive: List Changes to a TeamDrive

Back to Index

Download a list of changes to a teamdrive. This example lists the changes for the team drive having id = "0AEd3EhGff2SaUk9PVA". The "pageToken" is obtained from a previous call to /drive/v3/changes/startPageToken or from the "nextPageToken" member of the previous call to list changes.

Documentation: https://developers.google.com/drive/v3/reference/changes/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("teamDriveId","0AEd3EhGff2SaUk9PVA")
rest.AddQueryParam("pageToken","13")
rest.AddQueryParam("includeTeamDriveItems","true")
rest.AddQueryParam("supportsTeamDrives","true")

Dim sbJson As New Chilkat.StringBuilder
success = rest.FullRequestNoBodySb("GET","/drive/v3/changes",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 kind As String
Dim newStartPageToken As String
Dim i As Int32
Dim count_i As Int32
Dim type As String
Dim time As String
Dim removed As Boolean
Dim fileId As String
Dim fileKind As String
Dim fileName As String
Dim fileMimeType As String
Dim fileTeamDriveId As String

kind = json.StringOf("kind")
newStartPageToken = json.StringOf("newStartPageToken")
i = 0
count_i = json.SizeOfArray("changes")
While i < count_i
    json.I = i
    kind = json.StringOf("changes[i].kind")
    type = json.StringOf("changes[i].type")
    time = json.StringOf("changes[i].time")
    removed = json.BoolOf("changes[i].removed")
    fileId = json.StringOf("changes[i].fileId")
    fileKind = json.StringOf("changes[i].file.kind")
    fileId = json.StringOf("changes[i].file.id")
    fileName = json.StringOf("changes[i].file.name")
    fileMimeType = json.StringOf("changes[i].file.mimeType")
    fileTeamDriveId = json.StringOf("changes[i].file.teamDriveId")
    i = i + 1
Wend

System.DebugLog("Example Completed.")

Sample JSON Response Body

{
  "kind": "drive#changeList",
  "newStartPageToken": "16",
  "changes": [
    {
      "kind": "drive#change",
      "type": "file",
      "time": "2017-11-13T17:04:47.470Z",
      "removed": false,
      "fileId": "1lT4TbeSSMtxgB2MmwE7-5i7vQaxhr6Ze",
      "file": {
        "kind": "drive#file",
        "id": "1lT4TbeSSMtxgB2MmwE7-5i7vQaxhr6Ze",
        "name": "starfish2.jpg",
        "mimeType": "image/jpeg",
        "teamDriveId": "0AEd3EhGff2SaUk9PVA"
      }
    },
    {
      "kind": "drive#change",
      "type": "file",
      "time": "2017-11-13T17:05:01.095Z",
      "removed": false,
      "fileId": "16MsxSRSz6ISRx1D_PXyA5Sj6aNFSEd4e",
      "file": {
        "kind": "drive#file",
        "id": "16MsxSRSz6ISRx1D_PXyA5Sj6aNFSEd4e",
        "name": "seahorse.jpg",
        "mimeType": "image/jpeg",
        "teamDriveId": "0AEd3EhGff2SaUk9PVA"
      }
    }
  ]
}