Sample code for 30+ languages & platforms
Visual FoxPro

Retrieve the metadata for a DriveItem

See more OneDrive Examples

Fetches the JSON metadata for a DriveItem.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loJson
LOCAL loHttp
LOCAL lcMetaData
LOCAL lcOdata_context
LOCAL lcMicrosoft_graph_downloadUrl
LOCAL lcCreatedDateTime
LOCAL lcCTag
LOCAL lcETag
LOCAL lcId
LOCAL lcLastModifiedDateTime
LOCAL lcName
LOCAL lnSize
LOCAL lcWebUrl
LOCAL lnRatingRating
LOCAL lnRatingSimpleRating
LOCAL lcCreatedByUserDisplayName
LOCAL lcCreatedByUserId
LOCAL lcLastModifiedByUserDisplayName
LOCAL lcLastModifiedByUserId
LOCAL lcParentReferenceDriveId
LOCAL lcParentReferenceDriveType
LOCAL lcParentReferenceId
LOCAL lcParentReferenceName
LOCAL lcParentReferencePath
LOCAL lcFileMimeType
LOCAL lcFileHashesSha1Hash
LOCAL lcFileSystemInfoCreatedDateTime
LOCAL lcFileSystemInfoLastModifiedDateTime
LOCAL lnImageHeight
LOCAL lnImageWidth
LOCAL lcPhotoTakenDateTime
LOCAL lcSharedScope
LOCAL lcSharedOwnerUserDisplayName
LOCAL lcSharedOwnerUserId

lnSuccess = 0

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

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

loHttp = CreateObject('Chilkat.Http')
loHttp.AuthToken = loJson.Emit()

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

* Make sure to automatically follow redirects
loHttp.FollowRedirects = 1

* This example will get the metadata for /Misc/wildlife/penguins.jpg
loHttp.SetUrlVar("item_path","Misc//penguins.jpg")
loHttp.SetUrlVar("user_id","4fe732c3-322e-4a6b-b729-2fd1eb5c6104")

lcMetaData = loHttp.QuickGetStr("https://graph.microsoft.com/v1.0/users/{$user_id}/drive/root:/{$item_path}")
IF (loHttp.LastMethodSuccess <> 1) THEN
    ? loHttp.LastErrorText
    RELEASE loJson
    RELEASE loHttp
    CANCEL
ENDIF

loJson.EmitCompact = 0
lnSuccess = loJson.Load(lcMetaData)
? loJson.Emit()

* Sample JSON metadata result:

* {
*   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('admin%40chilkat.io')/drive/root/$entity",
*   "@microsoft.graph.downloadUrl": "https://public.dm.files.1drv.com/y4mh0z_Og97O7Q...o2q1HhNBU",
*   "createdDateTime": "2017-06-04T20:40:22.48Z",
*   "cTag": "aYzozQTMzRkNFQjlCNzRDQzE1ITQ4NzIuMjU3",
*   "eTag": "aM0EzM0ZDRUI5Qjc0Q0MxNSE0ODcyLjY",
*   "id": "3A33FCEB9B74CC15!4872",
*   "lastModifiedDateTime": "2018-10-20T18:22:29.977Z",
*   "name": "penguins.jpg",
*   "size": 777835,
*   "webUrl": "https://1drv.ms/i/s!ABXMdJvr_DM6pgg",
*   "rating": {
*     "rating": 75,
*     "simpleRating": 4
*   },
*   "createdBy": {
*     "user": {
*       "displayName": "Joe Programmer",
*       "id": "3a33fceb9b74cc15"
*     }
*   },
*   "lastModifiedBy": {
*     "user": {
*       "displayName": "Joe Programmer",
*       "id": "3a33fceb9b74cc15"
*     }
*   },
*   "parentReference": {
*     "driveId": "3a33fceb9b74cc15",
*     "driveType": "personal",
*     "id": "3A33FCEB9B74CC15!4871",
*     "name": "wildlife",
*     "path": "/drive/root:/Misc/wildlife"
*   },
*   "file": {
*     "mimeType": "image/jpeg",
*     "hashes": {
*       "sha1Hash": "DF7BE9DC4F467187783ACA68C7CE98E4DF2172D0"
*     }
*   },
*   "fileSystemInfo": {
*     "createdDateTime": "2017-06-04T20:40:22.48Z",
*     "lastModifiedDateTime": "2009-07-14T05:32:31.674Z"
*   },
*   "image": {
*     "height": 768,
*     "width": 1024
*   },
*   "photo": {
*     "takenDateTime": "2008-02-18T05:07:31Z"
*   },
*   "shared": {
*     "scope": "users",
*     "owner": {
*       "user": {
*         "displayName": "Joe Programmer",
*         "id": "3a33fceb9b74cc15"
*       }
*     }
*   }
* }
* 

* If the response status code was not 200, then it failed.
IF (loHttp.LastStatus <> 200) THEN
    ? "Response Status Code = " + STR(loHttp.LastStatus)
    ? "Failed."
    RELEASE loJson
    RELEASE loHttp
    CANCEL
ENDIF

* Demonstrate how to parse the JSON...

lcOdata_context = loJson.StringOf('"@odata.context"')
lcMicrosoft_graph_downloadUrl = loJson.StringOf('"@microsoft.graph.downloadUrl"')
lcCreatedDateTime = loJson.StringOf("createdDateTime")
lcCTag = loJson.StringOf("cTag")
lcETag = loJson.StringOf("eTag")
lcId = loJson.StringOf("id")
lcLastModifiedDateTime = loJson.StringOf("lastModifiedDateTime")
lcName = loJson.StringOf("name")
lnSize = loJson.IntOf("size")
lcWebUrl = loJson.StringOf("webUrl")
lnRatingRating = loJson.IntOf("rating.rating")
lnRatingSimpleRating = loJson.IntOf("rating.simpleRating")
lcCreatedByUserDisplayName = loJson.StringOf("createdBy.user.displayName")
lcCreatedByUserId = loJson.StringOf("createdBy.user.id")
lcLastModifiedByUserDisplayName = loJson.StringOf("lastModifiedBy.user.displayName")
lcLastModifiedByUserId = loJson.StringOf("lastModifiedBy.user.id")
lcParentReferenceDriveId = loJson.StringOf("parentReference.driveId")
lcParentReferenceDriveType = loJson.StringOf("parentReference.driveType")
lcParentReferenceId = loJson.StringOf("parentReference.id")
lcParentReferenceName = loJson.StringOf("parentReference.name")
lcParentReferencePath = loJson.StringOf("parentReference.path")
lcFileMimeType = loJson.StringOf("file.mimeType")
lcFileHashesSha1Hash = loJson.StringOf("file.hashes.sha1Hash")
lcFileSystemInfoCreatedDateTime = loJson.StringOf("fileSystemInfo.createdDateTime")
lcFileSystemInfoLastModifiedDateTime = loJson.StringOf("fileSystemInfo.lastModifiedDateTime")
lnImageHeight = loJson.IntOf("image.height")
lnImageWidth = loJson.IntOf("image.width")
lcPhotoTakenDateTime = loJson.StringOf("photo.takenDateTime")
lcSharedScope = loJson.StringOf("shared.scope")
lcSharedOwnerUserDisplayName = loJson.StringOf("shared.owner.user.displayName")
lcSharedOwnerUserId = loJson.StringOf("shared.owner.user.id")

RELEASE loJson
RELEASE loHttp