Tcl
Tcl
OneDrive -- Download Binary File to Memory
See more OneDrive Examples
Downloads a binary file (such as JPG, PDF, etc.) into a BinData object.Note: This example requires Chilkat v9.5.0.97 or greater.
Chilkat Tcl Downloads
load ./chilkat.dll
set success 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
set json [new_CkJsonObject]
CkJsonObject_UpdateString $json "client_id" "2871da2c-8176-4b7f-869b-2311aa82e743"
CkJsonObject_UpdateString $json "client_secret" "2hu9Q~r5QuryUcEkNbg1btLtnfU1VUXzhSCG6brH"
CkJsonObject_UpdateString $json "scope" "https://graph.microsoft.com/.default"
CkJsonObject_UpdateString $json "token_endpoint" "https://login.microsoftonline.com/114d7ed6-71bf-4dbe-a866-748364121bf2/oauth2/v2.0/token"
set http [new_CkHttp]
CkHttp_put_AuthToken $http [CkJsonObject_emit $json]
# Sends the following GET request:
# GET https://graph.microsoft.com/v1.0/users/{user-id}/drive/root:/{item-path}:/content
# Make sure to automatically follow redirects
CkHttp_put_FollowRedirects $http 1
# This example will download /Misc/starfish.jpg
CkHttp_SetUrlVar $http "item_path" "Misc/starfish.jpg"
CkHttp_SetUrlVar $http "user_id" "4fe732c3-322e-4a6b-b729-2fd1eb5c6104"
set fileData [new_CkBinData]
set url "https://graph.microsoft.com/v1.0/users/{$user_id}/drive/root:/{$item_path}:/content"
set success [CkHttp_DownloadBd $http $url $fileData]
if {[CkHttp_get_LastMethodSuccess $http] != 1} then {
puts [CkHttp_lastErrorText $http]
delete_CkJsonObject $json
delete_CkHttp $http
delete_CkBinData $fileData
exit
}
# If the response status code was not 200, then it failed.
if {[CkHttp_get_LastStatus $http] != 200} then {
puts "Response Status Code = [CkHttp_get_LastStatus $http]"
puts "Failed."
delete_CkJsonObject $json
delete_CkHttp $http
delete_CkBinData $fileData
exit
}
# If we got here, then the file was successfully downloaded.
puts "Download binary from OneDrive successful."
puts "The file is contained in fileData."
delete_CkJsonObject $json
delete_CkHttp $http
delete_CkBinData $fileData