Sample code for 30+ languages & platforms
DataFlex

Retrieve the metadata for a DriveItem

See more OneDrive Examples

Fetches the JSON metadata for a DriveItem.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoJson
    Handle hoHttp
    String sMetaData
    String sOdata_context
    String sMicrosoft_graph_downloadUrl
    String sCreatedDateTime
    String sCTag
    String sETag
    String sId
    String sLastModifiedDateTime
    String sName
    Integer iSize
    String sWebUrl
    Integer iRatingRating
    Integer iRatingSimpleRating
    String sCreatedByUserDisplayName
    String sCreatedByUserId
    String sLastModifiedByUserDisplayName
    String sLastModifiedByUserId
    String sParentReferenceDriveId
    String sParentReferenceDriveType
    String sParentReferenceId
    String sParentReferenceName
    String sParentReferencePath
    String sFileMimeType
    String sFileHashesSha1Hash
    String sFileSystemInfoCreatedDateTime
    String sFileSystemInfoLastModifiedDateTime
    Integer iImageHeight
    Integer iImageWidth
    String sPhotoTakenDateTime
    String sSharedScope
    String sSharedOwnerUserDisplayName
    String sSharedOwnerUserId
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Move False To iSuccess

    // 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
    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComUpdateString Of hoJson "client_id" "2871da2c-8176-4b7f-869b-2311aa82e743" To iSuccess
    Get ComUpdateString Of hoJson "client_secret" "2hu9Q~r5QuryUcEkNbg1btLtnfU1VUXzhSCG6brH" To iSuccess
    Get ComUpdateString Of hoJson "scope" "https://graph.microsoft.com/.default" To iSuccess
    Get ComUpdateString Of hoJson "token_endpoint" "https://login.microsoftonline.com/114d7ed6-71bf-4dbe-a866-748364121bf2/oauth2/v2.0/token" To iSuccess

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End
    Get ComEmit Of hoJson To sTemp1
    Set ComAuthToken Of hoHttp To sTemp1

    // 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
    Set ComFollowRedirects Of hoHttp To True

    // This example will get the metadata for /Misc/wildlife/penguins.jpg
    Get ComSetUrlVar Of hoHttp "item_path" "Misc//penguins.jpg" To iSuccess
    Get ComSetUrlVar Of hoHttp "user_id" "4fe732c3-322e-4a6b-b729-2fd1eb5c6104" To iSuccess

    Get ComQuickGetStr Of hoHttp "https://graph.microsoft.com/v1.0/users/{$user_id}/drive/root:/{$item_path}" To sMetaData
    Get ComLastMethodSuccess Of hoHttp To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Set ComEmitCompact Of hoJson To False
    Get ComLoad Of hoJson sMetaData To iSuccess
    Get ComEmit Of hoJson To sTemp1
    Showln sTemp1

    // 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.
    Get ComLastStatus Of hoHttp To iTemp1
    If (iTemp1 <> 200) Begin
        Get ComLastStatus Of hoHttp To iTemp1
        Showln "Response Status Code = " iTemp1
        Showln "Failed."
        Procedure_Return
    End

    // Demonstrate how to parse the JSON...

    Get ComStringOf Of hoJson '"@odata.context"' To sOdata_context
    Get ComStringOf Of hoJson '"@microsoft.graph.downloadUrl"' To sMicrosoft_graph_downloadUrl
    Get ComStringOf Of hoJson "createdDateTime" To sCreatedDateTime
    Get ComStringOf Of hoJson "cTag" To sCTag
    Get ComStringOf Of hoJson "eTag" To sETag
    Get ComStringOf Of hoJson "id" To sId
    Get ComStringOf Of hoJson "lastModifiedDateTime" To sLastModifiedDateTime
    Get ComStringOf Of hoJson "name" To sName
    Get ComIntOf Of hoJson "size" To iSize
    Get ComStringOf Of hoJson "webUrl" To sWebUrl
    Get ComIntOf Of hoJson "rating.rating" To iRatingRating
    Get ComIntOf Of hoJson "rating.simpleRating" To iRatingSimpleRating
    Get ComStringOf Of hoJson "createdBy.user.displayName" To sCreatedByUserDisplayName
    Get ComStringOf Of hoJson "createdBy.user.id" To sCreatedByUserId
    Get ComStringOf Of hoJson "lastModifiedBy.user.displayName" To sLastModifiedByUserDisplayName
    Get ComStringOf Of hoJson "lastModifiedBy.user.id" To sLastModifiedByUserId
    Get ComStringOf Of hoJson "parentReference.driveId" To sParentReferenceDriveId
    Get ComStringOf Of hoJson "parentReference.driveType" To sParentReferenceDriveType
    Get ComStringOf Of hoJson "parentReference.id" To sParentReferenceId
    Get ComStringOf Of hoJson "parentReference.name" To sParentReferenceName
    Get ComStringOf Of hoJson "parentReference.path" To sParentReferencePath
    Get ComStringOf Of hoJson "file.mimeType" To sFileMimeType
    Get ComStringOf Of hoJson "file.hashes.sha1Hash" To sFileHashesSha1Hash
    Get ComStringOf Of hoJson "fileSystemInfo.createdDateTime" To sFileSystemInfoCreatedDateTime
    Get ComStringOf Of hoJson "fileSystemInfo.lastModifiedDateTime" To sFileSystemInfoLastModifiedDateTime
    Get ComIntOf Of hoJson "image.height" To iImageHeight
    Get ComIntOf Of hoJson "image.width" To iImageWidth
    Get ComStringOf Of hoJson "photo.takenDateTime" To sPhotoTakenDateTime
    Get ComStringOf Of hoJson "shared.scope" To sSharedScope
    Get ComStringOf Of hoJson "shared.owner.user.displayName" To sSharedOwnerUserDisplayName
    Get ComStringOf Of hoJson "shared.owner.user.id" To sSharedOwnerUserId


End_Procedure