PureBasic
PureBasic
SharePoint -- Recycle File (Move File to Recycle Bin)
Moves the file to the Recycle Bin and returns the identifier of the new Recycle Bin item.Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkXml.pb"
IncludeFile "CkHttpRequest.pb"
Procedure ChilkatExample()
success.i = 0
; This requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
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
req.i = CkHttpRequest::ckCreate()
If req.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHttpRequest::setCkHttpVerb(req, "POST")
CkHttpRequest::setCkPath(req, "/_api/web/GetFileByServerRelativeUrl('/ChilkatDocLibrary/sample.docx')/recycle")
; We must add a form digest value in the X-RequestDigest header field.
; See this example for details on
; how to get (and cache) a form digest value
CkHttpRequest::ckAddHeader(req,"X-RequestDigest","SHAREPOINT_FORM_DIGEST")
; Send the request to move the file to the recycle bin.
bUseTls.i = 1
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpSReq(http,"SHAREPOINT_HTTPS_DOMAIN",443,bUseTls,req,resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
xml.i = CkXml::ckCreate()
If xml.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::ckLoadXml(xml,CkHttpResponse::ckBodyStr(resp))
; A successful response will return the 200 status code.
If CkHttpResponse::ckStatusCode(resp) <> 200
Debug "Response status code = " + Str(CkHttpResponse::ckStatusCode(resp))
Debug CkXml::ckGetXml(xml)
Debug "Failed"
CkHttp::ckDispose(http)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
CkXml::ckDispose(xml)
ProcedureReturn
EndIf
; Show the XML response.
Debug CkXml::ckGetXml(xml)
; The GUID (identifier) of the item in the recycle bin is just the content
; of the single-node XML that is returned:
guid.s = CkXml::ckContent(xml)
Debug "GUID of recycle item = " + guid
Debug "Success."
; A successful XML response looks like this:
; <?xml version="1.0" encoding="utf-8" ?>
; <d:Recycle xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
; xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
; xmlns:georss="http://www.georss.org/georss"
; xmlns:gml="http://www.opengis.net/gml"
; m:type="Edm.Guid">
; 63b9924d-e9c1-4d7b-b1c2-e921ad85aa1c
; </d:Recycle>
CkHttp::ckDispose(http)
CkHttpRequest::ckDispose(req)
CkHttpResponse::ckDispose(resp)
CkXml::ckDispose(xml)
ProcedureReturn
EndProcedure