PureBasic
PureBasic
SharePoint -- Get Folder Properties
See more SharePoint Examples
This example shows how to get the properties of a SharePoint folder. Specifically, it gets the properties of one of our test folders named "Briefing 02032017".Chilkat PureBasic Downloads
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; -------------------------------------------------------------------------
; The following comments apply to SharePoint Windows classic authentication.
; -------------------------------------------------------------------------
; For example, imagine our SharePoint endpoint is https://xyzoffice.mycompany.com/
; The SHAREPOINT_NTLM_DOMAIN would be "mycompany.com"
; The SHAREPOINT_HTTPS_DOMAIN would be "xyzoffice.mycompany.com"
; Also, the SHAREPOINT_USERNAME would be just the name, not a full email address.
; for example, "chilkat" instead of "chilkat@mycompany.com"
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; If SharePoint Windows classic authentication is used, then set the
; Login, Password, LoginDomain, and NtlmAuth properties.
CkHttp::setCkLogin(http, "SHAREPOINT_USERNAME")
CkHttp::setCkPassword(http, "SHAREPOINT_PASSWORD")
CkHttp::setCkLoginDomain(http, "SHAREPOINT_NTLM_DOMAIN")
CkHttp::setCkNtlmAuth(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::setCkAccept(http, "application/json;odata=verbose")
CkHttp::setCkAcceptCharset(http, "utf-8")
; If your Sharepoint site is within a site collection, then use "https://SHAREPOINT_HTTPS_DOMAIN/sites/teamA/_api/web/GetFolderByServerRelativeUrl('/sites/teamA/Briefing 02032017')" where "teamA" is the name of the site.
sbJson.i = CkStringBuilder::ckCreate()
If sbJson.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckQuickGetSb(http,"https://SHAREPOINT_HTTPS_DOMAIN/_api/web/GetFolderByServerRelativeUrl('/Briefing 02032017')",sbJson)
If success <> 1
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkStringBuilder::ckDispose(sbJson)
ProcedureReturn
EndIf
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoadSb(json,sbJson)
CkJsonObject::setCkEmitCompact(json, 0)
; To get the number of items in the folder:
itemCount.i = CkJsonObject::ckIntOf(json,"d.ItemCount")
Debug "Number of items: " + Str(itemCount)
; The full JSON response looks like the following:
Debug CkJsonObject::ckEmit(json)
; {
; "d": {
; "__metadata": {
; "id": "Web/GetFolderByServerRelativeUrl('/Briefing 02032017')",
; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFolderByServerRelativeUrl('/Briefing%2002032017')",
; "type": "SP.Folder"
; },
; "Files": {
; "__deferred": {
; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFolderByServerRelativeUrl('/Briefing%2002032017')/Files"
; }
; },
; "ListItemAllFields": {
; "__deferred": {
; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFolderByServerRelativeUrl('/Briefing%2002032017')/ListItemAllFields"
; }
; },
; "ParentFolder": {
; "__deferred": {
; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFolderByServerRelativeUrl('/Briefing%2002032017')/ParentFolder"
; }
; },
; "Properties": {
; "__deferred": {
; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFolderByServerRelativeUrl('/Briefing%2002032017')/Properties"
; }
; },
; "Folders": {
; "__deferred": {
; "uri": "https://SHAREPOINT_HTTPS_DOMAIN/_api/Web/GetFolderByServerRelativeUrl('/Briefing%2002032017')/Folders"
; }
; },
; "ItemCount": 9,
; "Name": "Briefing 02032017",
; "ServerRelativeUrl": "/Briefing 02032017",
; "WelcomePage": ""
; }
; }
;
CkHttp::ckDispose(http)
CkStringBuilder::ckDispose(sbJson)
CkJsonObject::ckDispose(json)
ProcedureReturn
EndProcedure