PureBasic
PureBasic
Create a New GMail Label
See more GMail REST API Examples
Demonstrates how to create a new GMail label.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
CkHttp::setCkAuthToken(http, "GMAIL-ACCESS-TOKEN")
userId.s = "me"
CkHttp::ckSetUrlVar(http,"userId",userId)
; Create the JSON to be sent in the HTTP request body.
; The name of the new label is "questions".
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(json,"name","questions")
CkJsonObject::ckUpdateString(json,"labelListVisibility","labelShow")
CkJsonObject::ckUpdateString(json,"messageListVisibility","show")
CkJsonObject::setCkEmitCompact(json, 0)
Debug CkJsonObject::ckEmit(json)
; The JSON contains this:
; {
; "name": "questions",
; "labelListVisibility": "labelShow",
; "messageListVisibility": "show"
; }
url.s = "https://www.googleapis.com/gmail/v1/users/{$userId}/labels"
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpJson(http,"POST",url,json,"application/json",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
Debug "status = " + Str(CkHttpResponse::ckStatusCode(resp))
; A 200 response status indicate success.
If CkHttpResponse::ckStatusCode(resp) <> 200
Debug CkHttpResponse::ckBodyStr(resp)
Debug "Failed."
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
; A successful repsonse contains JSON that looks like this:
; {
; "id": "Label_43",
; "name": "questions",
; "messageListVisibility": "show",
; "labelListVisibility": "labelShow"
; }
Debug "response body:"
Debug CkHttpResponse::ckBodyStr(resp)
Debug "GMail label created!"
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(json)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndProcedure