|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Tcl) List all Pages of Files in Google DriveDemonstrates how iterate over pages to list files in Google Drive. See Google Drive Files list for more optional HTTP parameters. 
 load ./chilkat.dll set success 1 # 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. set gAuth [new_CkAuthGoogle] CkAuthGoogle_put_AccessToken $gAuth "GOOGLE-DRIVE-ACCESS-TOKEN" set rest [new_CkRest] # Connect using TLS. set bAutoReconnect 1 set success [CkRest_Connect $rest "www.googleapis.com" 443 1 $bAutoReconnect] # Provide the authentication credentials (i.e. the access token) CkRest_SetAuthGoogle $rest $gAuth # Get 5 results per page for testing. (The default page size is 100, with a max of 1000. CkRest_AddQueryParam $rest "pageSize" "5" set json [new_CkJsonObject] # Send the request for the 1st page. set jsonResponse [CkRest_fullRequestNoBody $rest "GET" "/drive/v3/files"] set pageNumber 1 set bContinueLoop [expr [CkRest_get_LastMethodSuccess $rest] && [[CkRest_get_ResponseStatusCode $rest] == 200]] while {$bContinueLoop == 1} { puts "---- Page $pageNumber ----" # Iterate over each file in the response and show the name, id, and mimeType. CkJsonObject_Load $json $jsonResponse # See the sample JSON response at the bottom of this example. set numFiles [CkJsonObject_SizeOfArray $json "files"] set i 0 while {$i < $numFiles} { CkJsonObject_put_I $json $i puts "name: [CkJsonObject_stringOf $json {files[i].name}]" puts "id: [CkJsonObject_stringOf $json {files[i].id}]" puts "mimeType: [CkJsonObject_stringOf $json {files[i].mimeType}]" puts "-" set i [expr $i + 1] } # 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. set pageToken [CkJsonObject_stringOf $json "nextPageToken"] set bContinueLoop 0 set bHasMorePages [CkJsonObject_get_LastMethodSuccess $json] if {$bHasMorePages == 1} then { CkRest_ClearAllQueryParams $rest CkRest_AddQueryParam $rest "pageSize" "5" CkRest_AddQueryParam $rest "pageToken" $pageToken set jsonResponse [CkRest_fullRequestNoBody $rest "GET" "/drive/v3/files"] set bContinueLoop [expr [CkRest_get_LastMethodSuccess $rest] && [[CkRest_get_ResponseStatusCode $rest] == 200]] set pageNumber [expr $pageNumber + 1] } } if {[CkRest_get_LastMethodSuccess $rest] != 1} then { puts [CkRest_lastErrorText $rest] delete_CkAuthGoogle $gAuth delete_CkRest $rest delete_CkJsonObject $json exit } # A successful response will have a status code equal to 200. if {[CkRest_get_ResponseStatusCode $rest] != 200} then { puts "response status code = [CkRest_get_ResponseStatusCode $rest]" puts "response status text = [CkRest_responseStatusText $rest]" puts "response header: [CkRest_responseHeader $rest]" puts "response JSON: $jsonResponse" delete_CkAuthGoogle $gAuth delete_CkRest $rest delete_CkJsonObject $json exit } # A successful JSON response looks like this: # { # "kind": "drive#fileList", # "files": [ # { # "kind": "drive#file", # "id": "0B53Q6OSTWYolenpjTEU4ekJlQUU", # "name": "test", # "mimeType": "application/vnd.google-apps.folder" # }, # { # "kind": "drive#file", # "id": "0B53Q6OSTWYolRm4ycjZtdXhRaEE", # "name": "starfish4.jpg", # "mimeType": "image/jpeg" # }, # { # "kind": "drive#file", # "id": "0B53Q6OSTWYolMWt2VzN0Qlo1UjA", # "name": "hamlet2.xml", # "mimeType": "text/xml" # }, # ... # { # "kind": "drive#file", # "id": "0B53Q6OSTWYolc3RhcnRlcl9maWxlX2Rhc2hlclYw", # "name": "Getting started", # "mimeType": "application/pdf" # } # ] # } delete_CkAuthGoogle $gAuth delete_CkRest $rest delete_CkJsonObject $json | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.