AutoIt
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
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