Skip to content

Instantly share code, notes, and snippets.

@gagimilicevic
Forked from jmertic/gist:5730287
Created November 14, 2017 13:22
Show Gist options
  • Save gagimilicevic/43dca2d6e84eed0306f2061ff9f99806 to your computer and use it in GitHub Desktop.
Save gagimilicevic/43dca2d6e84eed0306f2061ff9f99806 to your computer and use it in GitHub Desktop.
Sample PHP script for connecting to the new RESTful SugarCRM REST API in 6.7 and later.
<?php
// specify the REST web service to interact with
$baseurl = '<<instanceurl>>/rest/v10';
/**
* Authenicate and get back token
*/
$curl = curl_init($baseurl . "/oauth2/token");
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Set the POST arguments to pass to the Sugar server
$rawPOSTdata = array(
"grant_type" => "password",
"username" => "<<username>>",
"password" => "<<password>>",
"client_id" => "sugar",
);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($rawPOSTdata));
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
// Make the REST call, returning the result
$response = curl_exec($curl);
if (!$response) {
die("Connection Failure.\n");
}
// Convert the result from JSON format to a PHP array
$result = json_decode($response);
curl_close($curl);
if ( isset($result->error) ) {
die($result->error_message."\n");
}
$token = $result->access_token;
echo "Success! OAuth token is $token\n";
/**
* Subsequent call to get my user data
*/
// Open a curl session for making the call
$curl = curl_init($baseurl . "/me");
curl_setopt($curl, CURLOPT_POST, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json',"OAuth-Token: $token"));
// Make the REST call, returning the result
$response = curl_exec($curl);
if (!$response) {
die("Connection Failure.\n");
}
// Convert the result from JSON format to a PHP array
$result = json_decode($response);
curl_close($curl);
if ( isset($result->error) ) {
die($result->error_message."\n");
}
var_dump($result);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment