Sample code for 30+ languages & platforms
AutoIt

Get File Metadata

See more Google Drive Examples

Gets a file's metadata or content by ID.

See Google Drive Files get for additional details.

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.
;  A single REST object, once connected, can be used for many Google Drive REST API calls.
;  The auto-reconnect indicates that if the already-established HTTPS connection is closed,
;  then it will be automatically re-established as needed.
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("www.googleapis.com",443,True,$bAutoReconnect)

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

;  ------------------------------------------------------------------------------

;  We need to send a GET request like this:
;  GET https://www.googleapis.com/drive/v3/files/fileId
;  The fileId is part of the path.
$oSbPath = ObjCreate("Chilkat.StringBuilder")
$oSbPath.Append("/drive/v3/files/")
;  Assume we previously obtained the fileId for the file of interest...
$oSbPath.Append("0B53Q6OSTWYolbUF6WS1Gei1oalk")

;  Indicate that we want ALL possible fields.
;  If no fields are indicated, then only the basic fields are returned.
Local $sAllFields = "appProperties,capabilities,contentHints,createdTime,description,explicitlyTrashed,fileExtension,folderColorRgb,fullFileExtension,headRevisionId,iconLink,id,imageMediaMetadata,isAppAuthorized,kind,lastModifyingUser,md5Checksum,mimeType,modifiedByMeTime,modifiedTime,name,originalFilename,ownedByMe,owners,parents,permissions,properties,quotaBytesUsed,shared,sharedWithMeTime,sharingUser,size,spaces,starred,thumbnailLink,trashed,version,videoMediaMetadata,viewedByMe,viewedByMeTime,viewersCanCopyContent,webContentLink,webViewLink,writersCanShare"

$oRest.AddQueryParam("fields",$sAllFields)

Local $sJsonResponse = $oRest.FullRequestNoBody("GET",$oSbPath.GetAsString())
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

;  ---------------------------------------------------
;  Sample code for parsing this JSON is shown below...
;  ---------------------------------------------------

;  A successful response looks like this:
;  {
;    "kind": "drive#file",
;    "id": "0B53Q6OSTWYolbUF6WS1Gei1oalk",
;    "name": "penguins.jpg",
;    "mimeType": "image/jpeg",
;    "starred": false,
;    "trashed": false,
;    "explicitlyTrashed": false,
;    "parents": [
;      "0B53Q6OSTWYola296ODZUSm5GYU0"
;    ],
;    "spaces": [
;      "drive"
;    ],
;    "version": "672",
;    "webContentLink": "https://docs.google.com/a/chilkatcloud.com/uc?id=0B53Q6OSTWYolbUF6WS1Gei1oalk&export=download",
;    "webViewLink": "https://drive.google.com/a/chilkatcloud.com/file/d/0B53Q6OSTWYolbUF6WS1Gei1oalk/view?usp=drivesdk",
;    "iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_11_image_list.png",
;    "thumbnailLink": "https://lh5.googleusercontent.com/uIV1dJdc8vsAQzaaIInpc9AV55AcdHhpM7fQeI2RN2qbCSnhjK9IDdNQAOTtkvjS9ZObqw=s220",
;    "viewedByMe": true,
;    "viewedByMeTime": "2016-10-08T12:38:02.258Z",
;    "createdTime": "2016-10-08T12:38:02.258Z",
;    "modifiedTime": "2016-10-08T12:38:02.258Z",
;    "modifiedByMeTime": "2016-10-08T12:38:02.258Z",
;    "owners": [
;      {
;        "kind": "drive#user",
;        "displayName": "Matthew Smith",
;        "me": true,
;        "permissionId": "08366696655122259092",
;        "emailAddress": "support@chilkatcloud.com"
;      }
;    ],
;    "lastModifyingUser": {
;      "kind": "drive#user",
;      "displayName": "Matthew Smith",
;      "me": true,
;      "permissionId": "08366696655122259092",
;      "emailAddress": "support@chilkatcloud.com"
;    },
;    "shared": false,
;    "ownedByMe": true,
;    "capabilities": {
;      "canEdit": true,
;      "canComment": true,
;      "canShare": true,
;      "canCopy": true,
;      "canReadRevisions": true
;    },
;    "viewersCanCopyContent": true,
;    "writersCanShare": true,
;    "permissions": [
;      {
;        "kind": "drive#permission",
;        "id": "08366696655122259092",
;        "type": "user",
;        "emailAddress": "support@chilkatcloud.com",
;        "role": "owner",
;        "displayName": "Matthew Smith"
;      }
;    ],
;    "originalFilename": "penguins.jpg",
;    "fullFileExtension": "jpg",
;    "fileExtension": "jpg",
;    "md5Checksum": "9d377b10ce778c4938b3c7e2c63a229a",
;    "size": "777835",
;    "quotaBytesUsed": "777835",
;    "headRevisionId": "0B53Q6OSTWYolUUlHVFhHdFlXQ0R1aHZuT0tORTVzc2h5NnZjPQ",
;    "imageMediaMetadata": {
;      "width": 1024,
;      "height": 768,
;      "rotation": 0,
;      "time": "2009:03:12 13:48:35"
;    },
;    "isAppAuthorized": false
;  }

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

;  Show the full JSON response.
$oJson.EmitCompact = False
ConsoleWrite($oJson.Emit() & @CRLF)
ConsoleWrite("-" & @CRLF)

;  Demonstrate how to get pieces of information:
ConsoleWrite("Original Filename: " & $oJson.StringOf("originalFilename") & @CRLF)

Local $bWasLastModifiedUserMe = $oJson.BoolOf("lastModifyingUser.me")
ConsoleWrite("Was Last Modified by Me: " & $bWasLastModifiedUserMe & @CRLF)

;  Assuming this is an image file...
Local $iWidth = $oJson.IntOf("imageMediaMetadata.width")
ConsoleWrite("Image Width: " & $iWidth & @CRLF)

;  Iterate over parents...
Local $i
Local $iNumParents = $oJson.SizeOfArray("parents")
$i = 0
While $i < $iNumParents
    $oJson.I = $i
    ConsoleWrite("Parent " & $i & ": " & $oJson.StringOf("parents[i]") & @CRLF)
    $i = $i + 1
Wend

;  Iterate over owners...
Local $iNumOwners = $oJson.SizeOfArray("owners")
$i = 0
While $i < $iNumOwners
    $oJson.I = $i
    ConsoleWrite("Owner " & $i & ": kind=" & $oJson.StringOf("owners[i].kind") & " displayName=" & $oJson.StringOf("owners[i].displayName") & @CRLF)
    $i = $i + 1
Wend

;  Iterate over permissions...
Local $iNumPermissions = $oJson.SizeOfArray("permissions")
$i = 0
While $i < $iNumPermissions
    $oJson.I = $i
    ConsoleWrite("Permission " & $i & ": kind=" & $oJson.StringOf("permissions[i].kind") & " id=" & $oJson.StringOf("permissions[i].id") & @CRLF)
    $i = $i + 1
Wend