Sample code for 30+ languages & platforms
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

PowerBuilder
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