Sample code for 30+ languages & platforms
AutoIt

Search for Files in Google Drive

See more Google Drive Examples

This example follows the same methodology for listing all files in Google Drive in pages, but applies a search filter. It shows how to apply a query parameter for filtering the file results. See the Google Drive Files list for more optional HTTP parameters.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

$bSuccess = True

; It requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

; This example uses a previously obtained access token having permission for the 
; Google Drive scope.

$oGAuth = ObjCreate("Chilkat.AuthGoogle")
$oGAuth.AccessToken = "GOOGLE-DRIVE-ACCESS-TOKEN"

$oRest = ObjCreate("Chilkat.Rest")

; Connect using TLS.
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("www.googleapis.com",443,True,$bAutoReconnect)

; Provide the authentication credentials (i.e. the access token)
$oRest.SetAuthGoogle($oGAuth)

; Get 5 results per page for testing.  (The default page size is 100, with a max of 1000.
$oRest.AddQueryParam("pageSize","5")

; Our search filter is to list all files containing ".jpg" (i.e. all JPG image files)
$oRest.AddQueryParam("q","name contains '.jpg'")

$oJson = ObjCreate("Chilkat.JsonObject")
Local $i
Local $iNumFiles

; Send the request for the 1st page.
Local $sJsonResponse = $oRest.FullRequestNoBody("GET","/drive/v3/files")

Local $iPageNumber = 1
Local $sPageToken
Local $bContinueLoop = $oRest.LastMethodSuccess And ($oRest.ResponseStatusCode = 200)

While $bContinueLoop = True

    ConsoleWrite("---- Page " & $iPageNumber & " ----" & @CRLF)

    ; Iterate over each file in the response and show the name, id, and mimeType.
    $oJson.Load($sJsonResponse)

    $iNumFiles = $oJson.SizeOfArray("files")
    $i = 0
    While $i < $iNumFiles
        $oJson.I = $i
        ConsoleWrite("name: " & $oJson.StringOf("files[i].name") & @CRLF)
        ConsoleWrite("id: " & $oJson.StringOf("files[i].id") & @CRLF)
        ConsoleWrite("mimeType: " & $oJson.StringOf("files[i].mimeType") & @CRLF)
        ConsoleWrite("-" & @CRLF)
        $i = $i + 1
    Wend

    ; Get the next page of files.
    ; If the "nextPageToken" is present in the JSON response, then use it in the "pageToken" parameter
    ; for the next request.   If no "nextPageToken" was present, then this was the last page of files.
    $sPageToken = $oJson.StringOf("nextPageToken")
    $bContinueLoop = False
Local $bHasMorePages = $oJson.LastMethodSuccess
    If ($bHasMorePages = True) Then
        $oRest.ClearAllQueryParams()
        $oRest.AddQueryParam("pageSize","5")
        $oRest.AddQueryParam("pageToken",$sPageToken)
        $oRest.AddQueryParam("q","name contains '.jpg'")

        $sJsonResponse = $oRest.FullRequestNoBody("GET","/drive/v3/files")
        $bContinueLoop = $oRest.LastMethodSuccess And ($oRest.ResponseStatusCode = 200)
        $iPageNumber = $iPageNumber + 1
    EndIf

Wend

If ($oRest.LastMethodSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

; A successful response will have a status code equal to 200.
If ($oRest.ResponseStatusCode <> 200) Then
    ConsoleWrite("response status code = " & $oRest.ResponseStatusCode & @CRLF)
    ConsoleWrite("response status text = " & $oRest.ResponseStatusText & @CRLF)
    ConsoleWrite("response header: " & $oRest.ResponseHeader & @CRLF)
    ConsoleWrite("response JSON: " & $sJsonResponse & @CRLF)
    Exit
EndIf