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
(Unicode C) 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:
#include <C_CkHttpW.h> #include <C_CkJsonObjectW.h> void ChilkatSample(void) { HCkHttpW http; const wchar_t *url; const wchar_t *jsonReply; HCkJsonObjectW json; int numVersions; int i; // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttpW_Create(); // If SharePoint Windows classic authentication is used, then set the // Login, Password, LoginDomain, and NtlmAuth properties. CkHttpW_putLogin(http,L"SHAREPOINT_USERNAME"); CkHttpW_putPassword(http,L"SHAREPOINT_PASSWORD"); CkHttpW_putLoginDomain(http,L"SHAREPOINT_NTLM_DOMAIN"); CkHttpW_putNtlmAuth(http,TRUE); // 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 CkHttpW_putAccept(http,L"application/json;odata=verbose"); CkHttpW_putAcceptCharset(http,L"utf-8"); // Get the Author property. url = L"https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/Author"; jsonReply = CkHttpW_quickGetStr(http,url); if (CkHttpW_getLastMethodSuccess(http) != TRUE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); return; } json = CkJsonObjectW_Create(); CkJsonObjectW_Load(json,jsonReply); CkJsonObjectW_putEmitCompact(json,FALSE); // 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 (CkHttpW_getLastStatus(http) != 200) { wprintf(L"%s\n",CkJsonObjectW_emit(json)); wprintf(L"Failed.\n"); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); return; } wprintf(L"%s\n",CkJsonObjectW_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: wprintf(L"----\n"); wprintf(L"Title: %s\n",CkJsonObjectW_stringOf(json,L"d.Title")); wprintf(L"Email: %s\n",CkJsonObjectW_stringOf(json,L"d.Email")); wprintf(L"----\n"); // -------------------------------------------------------------------- // Get the Versions property. url = L"https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFileByServerRelativeUrl('/Documents/VCAC-document.docx')/Versions"; jsonReply = CkHttpW_quickGetStr(http,url); if (CkHttpW_getLastMethodSuccess(http) != TRUE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); return; } CkJsonObjectW_Load(json,jsonReply); wprintf(L"%s\n",CkJsonObjectW_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... numVersions = CkJsonObjectW_SizeOfArray(json,L"d.results"); i = 0; while (i < numVersions) { CkJsonObjectW_putI(json,i); wprintf(L"---- i = %d\n",i); wprintf(L"VersionLabel: %s\n",CkJsonObjectW_stringOf(json,L"d.results[i].VersionLabel")); wprintf(L"Url: %s\n",CkJsonObjectW_stringOf(json,L"d.results[i].Url")); wprintf(L"Size: %d\n",CkJsonObjectW_IntOf(json,L"d.results[i].Size")); i = 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 CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.