PowerBuilder
PowerBuilder
List Files in Google Drive
See more Google Drive Examples
Demonstrates how to list files in Google Drive.See Google Drive Files list for more optional HTTP parameters.
Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_GAuth
oleobject loo_Rest
integer li_BAutoReconnect
string ls_JsonResponse
oleobject loo_Json
integer li_NumFiles
integer i
li_Success = 0
li_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.
loo_GAuth = create oleobject
li_rc = loo_GAuth.ConnectToNewObject("Chilkat.AuthGoogle")
if li_rc < 0 then
destroy loo_GAuth
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_GAuth.AccessToken = "GOOGLE-DRIVE-ACCESS-TOKEN"
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
// Connect using TLS.
li_BAutoReconnect = 1
li_Success = loo_Rest.Connect("www.googleapis.com",443,1,li_BAutoReconnect)
// Provide the authentication credentials (i.e. the access token)
loo_Rest.SetAuthGoogle(loo_GAuth)
// Get 4 results per page. (The default page size is 100, with a max of 1000.
loo_Rest.AddQueryParam("pageSize","4")
// This uses the Google Drive V3 API... (not V2)
ls_JsonResponse = loo_Rest.FullRequestNoBody("GET","/drive/v3/files")
if loo_Rest.LastMethodSuccess <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_GAuth
destroy loo_Rest
return
end if
// A successful response will have a status code equal to 200.
if loo_Rest.ResponseStatusCode <> 200 then
Write-Debug "request header = " + loo_Rest.LastRequestHeader
Write-Debug "response status code = " + string(loo_Rest.ResponseStatusCode)
Write-Debug "response status text = " + loo_Rest.ResponseStatusText
Write-Debug "response header: " + loo_Rest.ResponseHeader
Write-Debug "response JSON: " + ls_JsonResponse
destroy loo_GAuth
destroy loo_Rest
return
end if
// A successful 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"
// }
// ]
// }
// Iterate over each file in the response and show the name, id, and mimeType.
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.Load(ls_JsonResponse)
// Show the full JSON response.
loo_Json.EmitCompact = 0
Write-Debug loo_Json.Emit()
li_NumFiles = loo_Json.SizeOfArray("files")
i = 0
do while i < li_NumFiles
loo_Json.I = i
Write-Debug "name: " + loo_Json.StringOf("files[i].name")
Write-Debug "id: " + loo_Json.StringOf("files[i].id")
Write-Debug "mimeType: " + loo_Json.StringOf("files[i].mimeType")
Write-Debug "-"
i = i + 1
loop
destroy loo_GAuth
destroy loo_Rest
destroy loo_Json