PureBasic
PureBasic
SugarCRM: Importing Email Addresses (New Records)
See more SugarCRM Examples
Demonstrates how to import a new contact with email addresses.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::setCkAccept(http, "application/json")
; The following JSON is sent in the request body:
; {
; "first_name": "Rob",
; "last_name": "Robertson",
; "email": [
; {
; "email_address": "rob.robertson@sugar.crm",
; "primary_address": "1",
; "invalid_email": "0",
; "opt_out": "0"
; },
; {
; "email_address": "rob@sugar.crm",
; "primary_address": "0",
; "invalid_email": "0",
; "opt_out": "1"
; }
; ]
; }
; Use this online tool to generate the code from sample JSON:
; Generate Code to Create JSON
jsonRequestBody.i = CkJsonObject::ckCreate()
If jsonRequestBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckUpdateString(jsonRequestBody,"first_name","Rob")
CkJsonObject::ckUpdateString(jsonRequestBody,"last_name","Robertson")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].email_address","rob.robertson@sugar.crm")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].primary_address","1")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].invalid_email","0")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[0].opt_out","0")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].email_address","rob@sugar.crm")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].primary_address","0")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].invalid_email","0")
CkJsonObject::ckUpdateString(jsonRequestBody,"email[1].opt_out","1")
url.s = "http://<site url>/rest/v10/Contacts"
CkHttp::ckSetRequestHeader(http,"OAuth-Token","ACCESS_TOKEN")
resp.i = CkHttpResponse::ckCreate()
If resp.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckHttpJson(http,"POST",url,jsonRequestBody,"application/json",resp)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonRequestBody)
CkHttpResponse::ckDispose(resp)
ProcedureReturn
EndIf
Debug "Response Status Code: " + Str(CkHttpResponse::ckStatusCode(resp))
jsonResponse.i = CkJsonObject::ckCreate()
If jsonResponse.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::ckLoad(jsonResponse,CkHttpResponse::ckBodyStr(resp))
CkJsonObject::setCkEmitCompact(jsonResponse, 0)
Debug CkJsonObject::ckEmit(jsonResponse)
If CkHttpResponse::ckStatusCode(resp) >= 300
Debug "Failed."
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonRequestBody)
CkHttpResponse::ckDispose(resp)
CkJsonObject::ckDispose(jsonResponse)
ProcedureReturn
EndIf
CkHttp::ckDispose(http)
CkJsonObject::ckDispose(jsonRequestBody)
CkHttpResponse::ckDispose(resp)
CkJsonObject::ckDispose(jsonResponse)
ProcedureReturn
EndProcedure