PureBasic
PureBasic
Create Task
See more Microsoft Tasks and Plans Examples
Demonstrates how to create a new plannerTask.See https://docs.microsoft.com/en-us/graph/api/planner-post-tasks?view=graph-rest-1.0 for more information.
Chilkat PureBasic Downloads
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This example 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
; The Microsoft Planner REST API requires an OAuth2 token with the Group.ReadWrite.All scope.
; Use your previously obtained access token as shown here:
; Get Microsoft Graph OAuth2 Access Token with Group.ReadWrite.All scope.
jsonToken.i = CkJsonObject::ckCreate()
If jsonToken.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/msGraphGroup.json")
If success = 0
Debug CkJsonObject::ckLastErrorText(jsonToken)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
ProcedureReturn
EndIf
CkHttp::setCkAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"access_token"))
; Create a JSON body for the HTTP POST
; Use this online tool to generate the code from sample JSON:
; Generate Code to Create JSON
; {
; "planId": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
; "bucketId": "hsOf2dhOJkqyYYZEtdzDe2QAIUCR",
; "title": "Update client list",
; "assignments": {
; "fbab97d0-4932-4511-b675-204639209557": {
; "@odata.type": "#microsoft.graph.plannerAssignment",
; "orderHint": " !"
; }
; },
; }
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(json,"planId","xqQg5FS2LkCp935s-FIFm2QAFkHM")
CkJsonObject::ckUpdateString(json,"bucketId","hsOf2dhOJkqyYYZEtdzDe2QAIUCR")
CkJsonObject::ckUpdateString(json,"title","Update client list")
CkJsonObject::ckUpdateString(json,"assignments.fbab97d0-4932-4511-b675-204639209557." + Chr(34) + "@odata.type" + Chr(34),"#microsoft.graph.plannerAssignment")
CkJsonObject::ckUpdateString(json,"assignments.fbab97d0-4932-4511-b675-204639209557.orderHint"," !")
; POST the JSON to https://graph.microsoft.com/v1.0/planner/tasks
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpJson(http,"POST","https://graph.microsoft.com/v1.0/planner/tasks",json,"application/json",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
CkJsonObject::ckLoad(json,CkHttpResponse::ckBodyStr(resp))
CkJsonObject::setCkEmitCompact(json, 0)
If CkHttpResponse::ckStatusCode(resp) <> 200
Debug CkJsonObject::ckEmit(json)
Debug "Failed, response status code = " + Str(CkHttpResponse::ckStatusCode(resp))
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
Debug CkJsonObject::ckEmit(json)
; A sample response:
; (See code for parsing this response below..)
; {
; "createdBy": {
; "user": {
; "id": "6463a5ce-2119-4198-9f2a-628761df4a62"
; }
; },
; "planId": "xqQg5FS2LkCp935s-FIFm2QAFkHM",
; "bucketId": "hsOf2dhOJkqyYYZEtdzDe2QAIUCR",
; "title": "Update client list",
; "orderHint": "85752723360752+",
; "createdDateTime": "2015-03-25T18:36:49.2407981Z",
; "assignments": {
; "fbab97d0-4932-4511-b675-204639209557": {
; "@odata.type": "#microsoft.graph.plannerAssignment",
; "assignedBy": {
; "user": {
; "id": "6463a5ce-2119-4198-9f2a-628761df4a62"
; }
; },
; "assignedDateTime": "2015-03-25T18:36:49.2407981Z",
; "orderHint": "RWk1"
; }
; },
; "id":"01gzSlKkIUSUl6DF_EilrmQAKDhh"
; }
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
createdByUserId.s = CkJsonObject::ckStringOf(json,"createdBy.user.id")
planId.s = CkJsonObject::ckStringOf(json,"planId")
bucketId.s = CkJsonObject::ckStringOf(json,"bucketId")
title.s = CkJsonObject::ckStringOf(json,"title")
orderHint.s = CkJsonObject::ckStringOf(json,"orderHint")
createdDateTime.s = CkJsonObject::ckStringOf(json,"createdDateTime")
assignments_odataType.s = CkJsonObject::ckStringOf(json,"assignments.fbab97d0-4932-4511-b675-204639209557." + Chr(34) + "@odata.type" + Chr(34))
assignmentsAssignedByUserId.s = CkJsonObject::ckStringOf(json,"assignments.fbab97d0-4932-4511-b675-204639209557.assignedBy.user.id")
assignmentsAssignedDateTime.s = CkJsonObject::ckStringOf(json,"assignments.fbab97d0-4932-4511-b675-204639209557.assignedDateTime")
assignmentsOrderHint.s = CkJsonObject::ckStringOf(json,"assignments.fbab97d0-4932-4511-b675-204639209557.orderHint")
id.s = CkJsonObject::ckStringOf(json,"id")
Debug "Success."
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonToken)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndProcedure