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