PHP code example of digitalmarketinginstitute / salesforce-api-php-wrapper
1. Go to this page and download the library: Download digitalmarketinginstitute/salesforce-api-php-wrapper library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
digitalmarketinginstitute / salesforce-api-php-wrapper example snippets
$sfClient = \Crunch\Salesforce\Client::create('https://test.salesforce.com/', 'clientid', 'clientsecret');
if ( ! isset($_GET['code'])) {
$url = $sfClient->getLoginUrl('http://example.com/sf-login');
header('Location: '.$url);
exit();
} else {
$token = $sfClient->authorizeConfirm($_GET['code'], 'http://example.com/sf-login');
$tokenGenerator = new \Crunch\Salesforce\AccessTokenGenerator();
$accessToken = $tokenGenerator->createFromSalesforceResponse($token);
$_SESSION['accessToken'] = $accessToken->toJson();
}
$sfClient = \Crunch\Salesforce\Client::create('https://test.salesforce.com/', 'clientid', 'clientsecret');
$tokenGenerator = new \Crunch\Salesforce\AccessTokenGenerator();
$accessToken = $tokenGenerator->createFromJson($_SESSION['accessToken']);
$sfClient->setAccessToken($accessToken);
$results = $sfClient->search('SELECT Name, Email FROM Lead Limit 10');
print_r($results);
class SalesforceConfig implements \Crunch\Salesforce\ClientConfigInterface {
/**
* @return string
*/
public function getLoginUrl()
{
return 'https://test.salesforce.com/';
}
/**
* @return string
*/
public function getClientId()
{
return 'clientid';
}
/**
* @return string
*/
public function getClientSecret()
{
return 'clientsecret';
}
}
$sfConfig = new SalesforceConfig();
$sfClient = new \Crunch\Salesforce\Client($sfConfig, new GuzzleHttp\Client());
$url = $sfClient->getLoginUrl('http://exmaple.com/sf-login');
$token = $sfClient->authorizeConfirm($_GET['code'], 'http://exmaple.com/sf-login');
$tokenGenerator = new \Crunch\Salesforce\AccessTokenGenerator();
$accessToken = $tokenGenerator->createFromSalesforceResponse($token);
class SFLocalFileStoreConfig implements \Crunch\Salesforce\TokenStore\LocalFileConfigInterface {
/**
* The path where the file will be stored, no trailing slash, must be writable
*
* @return string
*/
public function getFilePath()
{
return __DIR__;
}
}
$tokenStore = new \Crunch\Salesforce\TokenStore\LocalFile(new \Crunch\Salesforce\AccessTokenGenerator, new SFLocalFileStoreConfig);
//Save a token
$tokenStore->saveAccessToken($accessToken);
//Fetch a token
$accessToken = $tokenStore->fetchAccessToken();
$accessToken = $tokenStore->fetchAccessToken();
if ($accessToken->needsRefresh()) {
$accessToken = $sfClient->refreshToken();
$tokenStore->saveAccessToken($accessToken);
}
$sfConfig = new SalesforceConfig();
$sfClient = new \Crunch\Salesforce\Client($sfConfig, new \GuzzleHttp\Client());
$sfClient->setAccessToken($accessToken);
$data = $sfClient->search('SELECT Email, Name FROM Lead LIMIT 10');
$data = $sfClient->getRecord('Lead', '00WL0000008wVl1MDE', ['name', 'email', 'phone']);
$data = $sfClient->createRecord('Lead', ['email' => '[email protected] ', 'Company' => 'New test', 'lastName' => 'John Doe']);
$sfClient->updateRecord('Lead', '00WL0000008wVl1MDE', ['lastName' => 'Steve Jobs']);
// or with the above freshly created client
$sfClient->updateRecord('Lead', $data, ['lastName' => 'Steve Jobs']);
$sfClient->deleteRecord('Lead', '00WL0000008wVl1MDE');
try {
$results = $sfClient->search('SELECT Name, Email FROM Lead Limit 10');
print_r($results);
} catch (\Crunch\Salesforce\Exceptions\RequestException $e) {
echo $e->getMessage();
echo $e->getErrorCode();
} catch (\Crunch\Salesforce\Exceptions\AuthenticationException $e) {
echo $e->getErrorCode();
}