PowerBuilder
PowerBuilder
SugarCRM Authenticate
See more SugarCRM Examples
Demonstrates how to authenticate to the SugarCRM REST v10 API. This is how an OAuth2 access token is obtained.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Rest
oleobject loo_JsonReq
oleobject loo_SbReq
oleobject loo_SbJson
oleobject loo_Json
string ls_Access_token
integer li_Expires_in
string ls_Token_type
integer li_Scope
string ls_Refresh_token
integer li_Refresh_expires_in
string ls_Download_token
li_Success = 0
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
if li_rc < 0 then
destroy loo_Rest
MessageBox("Error","Connecting to COM object failed")
return
end if
li_Success = loo_Rest.Connect("your.site.domain",443,1,1)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
return
end if
loo_Rest.AddHeader("Cache-Control","no-cache")
// The following code creates the JSON request body.
// The JSON created by this code is shown below.
loo_JsonReq = create oleobject
li_rc = loo_JsonReq.ConnectToNewObject("Chilkat.JsonObject")
loo_JsonReq.UpdateString("grant_type","password")
loo_JsonReq.UpdateString("client_id","sugar")
loo_JsonReq.UpdateString("client_secret","CLIENT_SECRET")
loo_JsonReq.UpdateString("username","admin")
loo_JsonReq.UpdateString("password","password")
loo_JsonReq.UpdateString("platform","custom_api")
// The JSON request body created by the above code:
// {
// "grant_type": "password",
// "client_id": "sugar",
// "client_secret": "CLIENT_SECRET",
// "username": "admin",
// "password": "password",
// "platform": "custom_api"
// }
loo_SbReq = create oleobject
li_rc = loo_SbReq.ConnectToNewObject("Chilkat.StringBuilder")
loo_JsonReq.EmitSb(loo_SbReq)
loo_Rest.AddHeader("Content-Type","application/json")
loo_SbJson = create oleobject
li_rc = loo_SbJson.ConnectToNewObject("Chilkat.StringBuilder")
li_Success = loo_Rest.FullRequestSb("POST","/rest/v10/oauth2/token",loo_SbReq,loo_SbJson)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Rest
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
return
end if
if loo_Rest.ResponseStatusCode <> 200 then
Write-Debug "Received error response code: " + string(loo_Rest.ResponseStatusCode)
Write-Debug "Response body:"
Write-Debug loo_SbJson.GetAsString()
destroy loo_Rest
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
return
end if
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.LoadSb(loo_SbJson)
// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.
ls_Access_token = loo_Json.StringOf("access_token")
li_Expires_in = loo_Json.IntOf("expires_in")
ls_Token_type = loo_Json.StringOf("token_type")
li_Scope = loo_Json.IsNullOf("scope")
ls_Refresh_token = loo_Json.StringOf("refresh_token")
li_Refresh_expires_in = loo_Json.IntOf("refresh_expires_in")
ls_Download_token = loo_Json.StringOf("download_token")
// A sample JSON response body that is parsed by the above code:
// {
// "access_token": "c6d495c9-bb25-81d2-5f81-533ef6479f9b",
// "expires_in": 3600,
// "token_type": "bearer",
// "scope": null,
// "refresh_token": "cbc40e67-12bc-4b56-a1d9-533ef62f2601",
// "refresh_expires_in": 1209600,
// "download_token": "cc5d1a9f-6627-3349-96e5-533ef6b1a493"
// }
Write-Debug "Example Completed."
destroy loo_Rest
destroy loo_JsonReq
destroy loo_SbReq
destroy loo_SbJson
destroy loo_Json