Sample code for 30+ languages & platforms
Lua Requires Chilkat v9.5.0.97+

OneDrive -- List Root Directory

See more OneDrive Examples

This gets the collection of DriveItem children of the root DriveItem. In OneDrive, a driveItem resource represents a file, folder, or other item stored in a drive. All file system objects in OneDriveare returned as driveItem resources (which are JSON objects).

This example returns the collection of child DriveItems for the root DriveItem.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

local success = false

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

-- This example uses the OAuth client credentials flow.
-- See How to Create an Azure App Registration for OAuth 2.0 Client Credentials

-- Use your client ID, client secret, and tenant ID in the following lines
local json = chilkat.JsonObject.new()
json:update_string("client_id", "2871da2c-8176-4b7f-869b-2311aa82e743")
json:update_string("client_secret", "2hu9Q~r5QuryUcEkNbg1btLtnfU1VUXzhSCG6brH")
json:update_string("scope", "https://graph.microsoft.com/.default")
json:update_string("token_endpoint", "https://login.microsoftonline.com/114d7ed6-71bf-4dbe-a866-748364121bf2/oauth2/v2.0/token")

local http = chilkat.Http.new()
http.auth_token = json:emit()

-- Sends the following GET request:
-- GET https://graph.microsoft.com/v1.0/users/{user-id}/drive/items/{item-id}/children

-- Use your specific Id instead of what we're using here:
http:set_url_var("userId", "4fe732c3-322e-4a6b-b729-2fd1eb5c6104")
http:set_url_var("itemId", "root")

local resp = http:quick_get_str("https://graph.microsoft.com/v1.0/users/{$userId}/drive/items/{$itemId}/children")
if not http.last_method_success then
    print(http.last_error_text)
    return
end

-- The response should be JSON.
json.emit_compact = false
json:load(resp)

-- A successful response should return a status code of 200.
if http.last_status ~= 200 then
    print(json:emit())
    print("Response status = " .. http.last_status)
    return
end

print(json:emit())

-- See the sample JSON response and output below..

local lastMod = chilkat.DateTime.new()
local photoTaken = chilkat.DateTime.new()

-- Iterate over the DriveItems in the JSON response:
-- (I tested this example with a root that contains a several folders,
-- a JPG image file, an XML file, and a WAV audio file.)
local i = 0
local numItems = json:size_of_array("value")
while i < numItems do
    json.i = i
    print("-- DriveItem " .. (i + 1))
    print("id: " .. json:string_of("value[i].id"))
    print("name: " .. json:string_of("value[i].name"))
    print("size: " .. json:int_of("value[i].size"))

    -- Get the lastModifiedDateTime
    lastMod:set_from_timestamp(json:string_of("value[i].fileSystemInfo.lastModifiedDateTime"))

    -- Is this a folder?
    if json:has_member("value[i].folder") then
        print("This is a folder with " .. json:int_of("value[i].folder.childCount") .. " children")
    end

    if json:has_member("value[i].file") then
        print("This is a file.")
        print("SHA1 hash: " .. json:string_of("value[i].file.hashes.sha1Hash"))
        print("mimeType: " .. json:string_of("value[i].mimeType"))
    end

    if json:has_member("value[i].image") then
        print("This is an image.")
        print("height: " .. json:int_of("value[i].image.height"))
        print("width: " .. json:int_of("value[i].image.width"))
    end

    if json:has_member("value[i].photo") then
        print("This is a photo.")
        photoTaken:set_from_timestamp(json:string_of("value[i].photo.takenDateTime"))
        print("photo taken on " .. photoTaken:get_as_rfc822(true))
    end

    if json:has_member("value[i].audio") then
        print("This is an audio file.")
        print("duration: " .. json:int_of("value[i].audio.duration"))
    end

    i = i + 1
end

-- The output for the above loop:

-- -- DriveItem 1
-- id: 3A33FCEB9B74CC15!187
-- name: Documents
-- size: 4452847
-- This is a folder with 8 children
-- -- DriveItem 2
-- id: 3A33FCEB9B74CC15!4114
-- name: Downloads
-- size: 18240001
-- This is a folder with 6 children
-- -- DriveItem 3
-- id: 3A33FCEB9B74CC15!4407
-- name: lots-of-files
-- size: 7542
-- This is a folder with 450 children
-- -- DriveItem 4
-- id: 3A33FCEB9B74CC15!4858
-- name: Misc
-- size: 819922938
-- This is a folder with 6 children
-- -- DriveItem 5
-- id: 3A33FCEB9B74CC15!185
-- name: Pictures
-- size: 0
-- This is a folder with 3 children
-- -- DriveItem 6
-- id: 3A33FCEB9B74CC15!186
-- name: Public
-- size: 0
-- This is a folder with 0 children
-- -- DriveItem 7
-- id: 3A33FCEB9B74CC15!4860
-- name: hamlet.xml
-- size: 279658
-- This is a file.
-- SHA1 hash: C6AD0095E07141C97A3C6B85778602AD883F5500
-- mimeType:
-- -- DriveItem 8
-- id: 3A33FCEB9B74CC15!4861
-- name: msg_123_abc.wav
-- size: 155564
-- This is a file.
-- SHA1 hash: 1F51ADBDAADEAABC2D588C2A795AE86758525984
-- mimeType:
-- This is an audio file.
-- duration: 9720
-- -- DriveItem 9
-- id: 3A33FCEB9B74CC15!4859
-- name: penguins.jpg
-- size: 777835
-- This is a file.
-- SHA1 hash: DF7BE9DC4F467187783ACA68C7CE98E4DF2172D0
-- mimeType:
-- This is an image.
-- height: 768
-- width: 1024
-- This is a photo.
-- photo taken on Sun, 17 Feb 2008 23:07:31 -0600
--

-- -------------------------------------------------------
-- This is the JSON response when this example was tested:

-- {
--   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('me')/drive/root/children",
--   "value": [
--     {
--       "createdBy": {
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         }
--       },
--       "createdDateTime": "2013-06-12T19:49:08.367Z",
--       "cTag": "adDozQTMzRkNFQjlCNzRDQzE1ITE4Ny42MzYyODA2Nzc4MjI3MzAwMDA",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSExODcuMA",
--       "id": "3A33FCEB9B74CC15!187",
--       "lastModifiedBy": {
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         }
--       },
--       "lastModifiedDateTime": "2017-04-17T23:16:22.273Z",
--       "name": "Documents",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 4452847,
--       "webUrl": "https://1drv.ms/f/s!ABXMdJvr_DM6gTs",
--       "fileSystemInfo": {
--         "createdDateTime": "2013-06-12T19:49:08.366Z",
--         "lastModifiedDateTime": "2013-06-12T19:49:08.367Z"
--       },
--       "folder": {
--         "childCount": 8
--       },
--       "specialFolder": {
--         "name": "documents"
--       }
--     },
--     {
--       "createdBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "createdDateTime": "2016-12-07T14:02:22.417Z",
--       "cTag": "adDozQTMzRkNFQjlCNzRDQzE1ITQxMTQuNjM2MjQzMzEyODEwMjAwMDAw",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0MTE0LjE",
--       "id": "3A33FCEB9B74CC15!4114",
--       "lastModifiedBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "lastModifiedDateTime": "2017-03-05T17:21:21.02Z",
--       "name": "Downloads",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 18240001,
--       "webUrl": "https://1drv.ms/f/s!ABXMdJvr_DM6oBI",
--       "fileSystemInfo": {
--         "createdDateTime": "2016-12-07T14:02:09Z",
--         "lastModifiedDateTime": "2016-12-07T14:02:09Z"
--       },
--       "folder": {
--         "childCount": 6
--       }
--     },
--     {
--       "createdBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "createdDateTime": "2017-06-02T02:14:59.797Z",
--       "cTag": "adDozQTMzRkNFQjlCNzRDQzE1ITQ0MDcuNjM2MzE5NjY2MDIzNDcwMDAw",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0NDA3LjA",
--       "id": "3A33FCEB9B74CC15!4407",
--       "lastModifiedBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "lastModifiedDateTime": "2017-06-02T02:16:42.347Z",
--       "name": "lots-of-files",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 7542,
--       "webUrl": "https://1drv.ms/f/s!ABXMdJvr_DM6ojc",
--       "fileSystemInfo": {
--         "createdDateTime": "2017-06-02T02:13:11Z",
--         "lastModifiedDateTime": "2017-06-02T02:14:54Z"
--       },
--       "folder": {
--         "childCount": 450
--       }
--     },
--     {
--       "createdBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "createdDateTime": "2017-06-02T19:06:10.293Z",
--       "cTag": "adDozQTMzRkNFQjlCNzRDQzE1ITQ4NTguNjM2MzIwMjcxOTAxNDcwMDAw",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0ODU4LjA",
--       "id": "3A33FCEB9B74CC15!4858",
--       "lastModifiedBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "lastModifiedDateTime": "2017-06-02T19:06:30.147Z",
--       "name": "Misc",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 819922938,
--       "webUrl": "https://1drv.ms/f/s!ABXMdJvr_DM6pXo",
--       "fileSystemInfo": {
--         "createdDateTime": "2017-06-02T19:06:02Z",
--         "lastModifiedDateTime": "2017-06-02T19:06:02Z"
--       },
--       "folder": {
--         "childCount": 6
--       }
--     },
--     {
--       "createdBy": {
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         }
--       },
--       "createdDateTime": "2013-06-12T19:49:08.123Z",
--       "cTag": "adDozQTMzRkNFQjlCNzRDQzE1ITE4NS42MzYxNDU5MzkxMDcyMDAwMDA",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSExODUuMA",
--       "id": "3A33FCEB9B74CC15!185",
--       "lastModifiedBy": {
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         }
--       },
--       "lastModifiedDateTime": "2016-11-13T00:31:50.72Z",
--       "name": "Pictures",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 0,
--       "webUrl": "https://1drv.ms/f/s!ABXMdJvr_DM6gTk",
--       "fileSystemInfo": {
--         "createdDateTime": "2013-06-12T19:49:08.123Z",
--         "lastModifiedDateTime": "2013-06-12T19:49:08.123Z"
--       },
--       "folder": {
--         "childCount": 3
--       },
--       "specialFolder": {
--         "name": "photos"
--       }
--     },
--     {
--       "createdBy": {
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         }
--       },
--       "createdDateTime": "2013-06-12T19:49:08.183Z",
--       "cTag": "adDozQTMzRkNFQjlCNzRDQzE1ITE4Ni42MzUwNjY2MzM0ODMwMzAwMDA",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSExODYuMQ",
--       "id": "3A33FCEB9B74CC15!186",
--       "lastModifiedBy": {
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         }
--       },
--       "lastModifiedDateTime": "2013-06-12T19:49:08.303Z",
--       "name": "Public",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 0,
--       "webUrl": "https://1drv.ms/f/s!ABXMdJvr_DM6gTo",
--       "fileSystemInfo": {
--         "createdDateTime": "2013-06-12T19:49:08.183Z",
--         "lastModifiedDateTime": "2013-06-12T19:49:08.183Z"
--       },
--       "folder": {
--         "childCount": 0
--       },
--       "shared": {
--         "owner": {
--           "user": {
--             "displayName": "Matt Smith",
--             "id": "3a33fceb9b74cc15"
--           }
--         },
--         "scope": "anonymous"
--       },
--       "specialFolder": {
--         "name": "public"
--       }
--     },
--     {
--       "@microsoft.graph.downloadUrl": "https://public.dm2301.livefilestore.com/y4m8Y4r_Ewfy3hIxqpU-_dxvY455X2gAZd3LJXE908zgA1ErQUm5wZpiyz6Rs0YfFb_c5SKgOFZV6HU1YpEmd0MvWbQ-dJVy2lLfRqTUnHEY8znUIQrljmTk1GR2auv4rTitRzWEZztQV0iId2-_FdQj2aZK5sdpmkdbgNuishP0NalJBsLdiBeKBVsy7A_zFTUXbw28ZzJctfyqITNUtBPxmDRzF39UWRjTo74CksCHc4",
--       "createdBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "createdDateTime": "2017-06-02T19:08:34.14Z",
--       "cTag": "aYzozQTMzRkNFQjlCNzRDQzE1ITQ4NjAuMjU3",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0ODYwLjA",
--       "id": "3A33FCEB9B74CC15!4860",
--       "lastModifiedBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "lastModifiedDateTime": "2017-06-02T19:08:34.14Z",
--       "name": "hamlet.xml",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 279658,
--       "webUrl": "https://1drv.ms/u/s!ABXMdJvr_DM6pXw",
--       "file": {
--         "hashes": {
--           "sha1Hash": "C6AD0095E07141C97A3C6B85778602AD883F5500"
--         },
--         "mimeType": "application/xml"
--       },
--       "fileSystemInfo": {
--         "createdDateTime": "2017-06-02T19:08:30Z",
--         "lastModifiedDateTime": "2016-03-03T23:10:30Z"
--       }
--     },
--     {
--       "@microsoft.graph.downloadUrl": "https://public.dm2301.livefilestore.com/y4mZ4m1N8Vzd40ZtPERT8qEo4nOxt786w5uHDuX4VkessshXBY9z9wyG3rb0GYAAaCYWd64tLCmFcObsobWoLZXkGwgAdBE5ebvHTxmS3W6Z7U0ZzBHviaIa2RufoGhOtAWCImPxRKxID3wPvqPW5jCG31tCXhtrJMuGHnW2TkWg3FxJEvezSkI2PBTGpMzvGVjjX-qsHSnP5OMFyx0ikwVMaGU7_KvGcDUZtj9clz8rXQ",
--       "createdBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "createdDateTime": "2017-06-02T19:08:53.167Z",
--       "cTag": "aYzozQTMzRkNFQjlCNzRDQzE1ITQ4NjEuMjU3",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0ODYxLjA",
--       "id": "3A33FCEB9B74CC15!4861",
--       "lastModifiedBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "lastModifiedDateTime": "2017-06-02T19:08:53.167Z",
--       "name": "msg_123_abc.wav",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 155564,
--       "webUrl": "https://1drv.ms/u/s!ABXMdJvr_DM6pX0",
--       "audio": {
--         "bitrate": 128,
--         "duration": 9720,
--         "hasDrm": false
--       },
--       "file": {
--         "hashes": {
--           "sha1Hash": "1F51ADBDAADEAABC2D588C2A795AE86758525984"
--         },
--         "mimeType": "audio/wav"
--       },
--       "fileSystemInfo": {
--         "createdDateTime": "2017-06-02T19:08:49Z",
--         "lastModifiedDateTime": "2017-04-18T14:27:12Z"
--       }
--     },
--     {
--       "@microsoft.graph.downloadUrl": "https://public.dm2301.livefilestore.com/y4m5U-QanvmGcb5NeRyPaf2dy32EyX2yf_uNvPgnioU2JGrvB25yZq4uKEiQGMex99sWQ2LXcjAQbQx41C-SpqRrccIKsTvnIbbyaB45gaBSLsTeryE75p70-l4FOXb8HJWfPZmMl30BhCqpMge2ZLVo8h3uUlL7WIijap5wHdVlb0g_nm47EMDFh3USIL43kY5u4NPpoaxNEoMGYtYZ2ojzDwu-kBgKgD0S3wxCvmlD8o",
--       "createdBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "createdDateTime": "2017-06-02T19:07:06.813Z",
--       "cTag": "aYzozQTMzRkNFQjlCNzRDQzE1ITQ4NTkuMjU3",
--       "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0ODU5LjI",
--       "id": "3A33FCEB9B74CC15!4859",
--       "lastModifiedBy": {
--         "device": {
--           "id": "187ffebfaf8fa5"
--         },
--         "user": {
--           "displayName": "Matt Smith",
--           "id": "3a33fceb9b74cc15"
--         },
--         "oneDriveSync": {
--           "@odata.type": "#microsoft.graph.identity",
--           "id": "388149ab-8073-45aa-a68c-aac791ec9c1d"
--         }
--       },
--       "lastModifiedDateTime": "2017-06-02T19:07:09.203Z",
--       "name": "penguins.jpg",
--       "parentReference": {
--         "driveId": "3a33fceb9b74cc15",
--         "id": "3A33FCEB9B74CC15!184",
--         "path": "/drive/root:"
--       },
--       "size": 777835,
--       "webUrl": "https://1drv.ms/i/s!ABXMdJvr_DM6pXs",
--       "file": {
--         "hashes": {
--           "sha1Hash": "DF7BE9DC4F467187783ACA68C7CE98E4DF2172D0"
--         },
--         "mimeType": "image/jpeg"
--       },
--       "fileSystemInfo": {
--         "createdDateTime": "2017-06-02T19:06:54Z",
--         "lastModifiedDateTime": "2009-07-14T05:32:31Z"
--       },
--       "image": {
--         "height": 768,
--         "width": 1024
--       },
--       "photo": {
--         "takenDateTime": "2008-02-18T05:07:31Z"
--       }
--     }
--   ]
-- }