Sample code for 30+ languages & platforms
Xojo Plugin

Google Cloud Storage List Buckets

See more Google Cloud Storage Examples

Demonstrates how to retrieve a list of buckets for a given project.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This example 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 
// scope "https://www.googleapis.com/auth/cloud-platform"

Dim jsonToken As New Chilkat.JsonObject
success = jsonToken.LoadFile("qa_data/tokens/googleCloudStorage.json")
If (success = False) Then
    System.DebugLog(jsonToken.LastErrorText)
    Return
End If

Dim http As New Chilkat.Http
http.AuthToken = jsonToken.StringOf("access_token")

// For more info see Cloud Storage Documentation - Buckets: list 
// 
success = http.SetUrlVar("PROJECT_ID","chilkattest-1050")
Dim resp As New Chilkat.HttpResponse
success = http.HttpNoBody("GET","https://www.googleapis.com/storage/v1/b?project={$PROJECT_ID}",resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim responseCode As Int32
responseCode = resp.StatusCode
If (responseCode = 401) Then
    System.DebugLog(resp.BodyStr)
    System.DebugLog("If invalid credentials, then it is likely the access token expired.")
    System.DebugLog("Your app should automatically fetch a new access token and re-try.")
    Return
End If

System.DebugLog("Response code: " + Str(responseCode))
System.DebugLog("Response body")

Dim json As New Chilkat.JsonObject
success = json.Load(resp.BodyStr)

json.EmitCompact = False

System.DebugLog(json.Emit())

// A response code = 200 indicates success, and the response body contains JSON such as this:

// {
//   "kind": "storage#buckets",
//   "items": [
//     {
//       "kind": "storage#bucket",
//       "id": "chilkat-bucket",
//       "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-bucket",
//       "projectNumber": "5332332985",
//       "name": "chilkat-bucket",
//       "timeCreated": "2018-10-23T00:04:44.507Z",
//       "updated": "2018-10-23T00:04:44.507Z",
//       "metageneration": "1",
//       "iamConfiguration": {
//         "bucketPolicyOnly": {
//           "enabled": false
//         }
//       },
//       "location": "US",
//       "storageClass": "MULTI_REGIONAL",
//       "etag": "CAE="
//     },
//     {
//       "kind": "storage#bucket",
//       "id": "chilkat-images",
//       "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-images",
//       "projectNumber": "5332332985",
//       "name": "chilkat-images",
//       "timeCreated": "2018-10-23T11:24:43.000Z",
//       "updated": "2018-10-23T11:24:43.000Z",
//       "metageneration": "1",
//       "iamConfiguration": {
//         "bucketPolicyOnly": {
//           "enabled": false
//         }
//       },
//       "location": "US",
//       "storageClass": "MULTI_REGIONAL",
//       "etag": "CAE="
//     }
//   ]
// }

// Use this online tool to generate parsing code from sample JSON: 
// Generate Parsing Code from JSON

Dim kind As String
Dim i As Int32
Dim count_i As Int32
Dim id As String
Dim selfLink As String
Dim projectNumber As String
Dim name As String
Dim timeCreated As String
Dim updated As String
Dim metageneration As String
Dim iamConfigurationBucketPolicyOnlyEnabled As Boolean
Dim location As String
Dim storageClass As String
Dim etag As String

kind = json.StringOf("kind")
i = 0
count_i = json.SizeOfArray("items")
While i < count_i
    json.I = i
    kind = json.StringOf("items[i].kind")
    id = json.StringOf("items[i].id")
    selfLink = json.StringOf("items[i].selfLink")
    projectNumber = json.StringOf("items[i].projectNumber")
    name = json.StringOf("items[i].name")
    timeCreated = json.StringOf("items[i].timeCreated")
    updated = json.StringOf("items[i].updated")
    metageneration = json.StringOf("items[i].metageneration")
    iamConfigurationBucketPolicyOnlyEnabled = json.BoolOf("items[i].iamConfiguration.bucketPolicyOnly.enabled")
    location = json.StringOf("items[i].location")
    storageClass = json.StringOf("items[i].storageClass")
    etag = json.StringOf("items[i].etag")
    i = i + 1
Wend