Sample code for 30+ languages & platforms
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

PowerBuilder
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