Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) SharePoint -- Get File PropertySee more SharePoint ExamplesDemonstrates how to get a specific property of a SharePoint file. Any of the following properties can be retrieved:
load ./chilkat.dll # This requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] # If SharePoint Windows classic authentication is used, then set the # Login, Password, LoginDomain, and NtlmAuth properties. CkHttp_put_Login $http "SHAREPOINT_USERNAME" CkHttp_put_Password $http "SHAREPOINT_PASSWORD" CkHttp_put_LoginDomain $http "SHAREPOINT_NTLM_DOMAIN" CkHttp_put_NtlmAuth $http 1 # The more common case is to use SharePoint Online authentication (via the SPOIDCRL cookie). # If so, do not set Login, Password, LoginDomain, and NtlmAuth, and instead # establish the cookie as shown at SharePoint Online Authentication # Indicate that we want a JSON reply CkHttp_put_Accept $http "application/json;odata=verbose" CkHttp_put_AcceptCharset $http "utf-8" # Get the Author property. set url "https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/Author" set jsonReply [CkHttp_quickGetStr $http $url] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http exit } set json [new_CkJsonObject] CkJsonObject_Load $json $jsonReply CkJsonObject_put_EmitCompact $json 0 # Make sure it was a success response, and that we really have metadata. # If it was an error response, then the JSON is error information.. if {[CkHttp_get_LastStatus $http] != 200} then { puts [CkJsonObject_emit $json] puts "Failed." delete_CkHttp $http delete_CkJsonObject $json exit } puts [CkJsonObject_emit $json] # The Author property returns JSON looking like this: # { # "d": { # "__metadata": { # "id": "Web/GetUserById(18)", # "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetUserById(18)", # "type": "SP.User" # }, # "Groups": { # "__deferred": { # "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetUserById(18)/Groups" # } # }, # "Id": 18, # "IsHiddenInUI": false, # "LoginName": "i:0#.w|mydomain\\msmith", # "Title": "Mike Smith", # "PrincipalType": 1, # "Email": "msmith@mydomain.com", # "IsSiteAdmin": false, # "UserId": { # "__metadata": { # "type": "SP.UserIdInfo" # }, # "NameId": "s-1-5-21-3433503314-2897774614-343593928-1137", # "NameIdIssuer": "urn:office:idp:activedirectory" # } # } # } # # Get the Title and Email: puts "----" puts "Title: [CkJsonObject_stringOf $json d.Title]" puts "Email: [CkJsonObject_stringOf $json d.Email]" puts "----" # -------------------------------------------------------------------- # Get the Versions property. set url "https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/Versions" set jsonReply [CkHttp_quickGetStr $http $url] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $json exit } CkJsonObject_Load $json $jsonReply puts [CkJsonObject_emit $json] # The Versions JSON reply looks like this: # { # "d": { # "results": [ # { # "__metadata": { # "id": "a8d025e2-8255-4487-9edb-9e796ab2889c", # "type": "SP.FileVersion" # }, # "CreatedBy": { # "__deferred": { # "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/CreatedBy" # } # }, # "CheckInComment": "", # "Created": "2016-03-15T02:22:26Z", # "ID": 1, # "IsCurrentVersion": false, # "Size": 21082, # "Url": "_vti_history/1/Documents/VCAC-document.docx", # "VersionLabel": "0.1" # }, # { # "__metadata": { # "id": "8ab3eadd-9126-4f65-a2a3-3b0689c592d6", # "type": "SP.FileVersion" # }, # "CreatedBy": { # "__deferred": { # "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/CreatedBy" # } # }, # "CheckInComment": "", # "Created": "2016-03-15T05:28:24Z", # "ID": 2, # "IsCurrentVersion": false, # "Size": 21082, # "Url": "_vti_history/2/Documents/VCAC-document.docx", # "VersionLabel": "0.2" # } # ] # } # } # # Get each VersionLabel, Size, and Url... set numVersions [CkJsonObject_SizeOfArray $json "d.results"] set i 0 while {$i < $numVersions} { CkJsonObject_put_I $json $i puts "---- i = $i" puts "VersionLabel: [CkJsonObject_stringOf $json {d.results[i].VersionLabel}]" puts "Url: [CkJsonObject_stringOf $json {d.results[i].Url}]" puts "Size: [CkJsonObject_IntOf $json {d.results[i].Size}]" set i [expr $i + 1] } # The output is: # ---- i = 0 # VersionLabel: 0.1 # Url: _vti_history/1/Documents/VCAC-document.docx # Size: 21082 # ---- i = 1 # VersionLabel: 0.2 # Url: _vti_history/2/Documents/VCAC-document.docx # Size: 21082 delete_CkHttp $http delete_CkJsonObject $json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.