Via Composer
composer require hardikdangar/php-salesforce-rest-api
Setting up a Connected App
- Log into to your Salesforce org
- Click on Setup in the upper right-hand menu
- Under Build click
Create > Apps
- Scroll to the bottom and click
New
under Connected Apps. - Enter the following details for the remote application:
- Connected App Name
- API Name
- Contact Email
- Enable OAuth Settings under the API dropdown
- Callback URL
- Select access scope (If you need a refresh token, specify it here)
- Click Save
After saving, you will now be given a Consumer Key and Consumer Secret. Update your config file with values for consumerKey
and consumerSecret
Authentication
$options = [
'grant_type' => 'password',
'client_id' => 'CONSUMERKEY',
'client_secret' => 'CONSUMERSECRET',
'username' => 'SALESFORCE_USERNAME',
'password' => 'SALESFORCE_PASSWORD AND SECURITY_TOKEN'
];
$salesforce = new hardikdangar\Salesforce\Authentication\PasswordAuthentication($options);
$salesforce->authenticate();
$access_token = $salesforce->getAccessToken();
$instance_url = $salesforce->getInstanceUrl();
Change Endpoint
$salesforce = new hardikdangar\Salesforce\Authentication\PasswordAuthentication($options);
$salesforce->setEndpoint('https://test.salesforce.com/');
$salesforce->authenticate();
$access_token = $salesforce->getAccessToken();
$instance_url = $salesforce->getInstanceUrl();
Query
$query = 'SELECT Id,Name FROM ACCOUNT LIMIT 100';
$crud = new \hardikdangar\Salesforce\CRUD();
$crud->query($query);
Create
$data = [
'Name' => 'some name',
];
$crud->create('Account', $data); #returns id
Update
$new_data = [
'Name' => 'another name',
];
$crud->update('Account', $id, $new_data); #returns status_code 204
Upsert
$new_data = [
'Name' => 'another name',
];
$crud->upsert('Account', 'API Name/ Field Name', 'value', $new_data); #returns status_code 204 or 201
Delete
$crud->delete('Account', $id);
queryByCaseNumber
$casenumber = '100001';
$fields = 'Status,Subject';
$crud = new \hardikdangar\Salesforce\CRUD();
$crud->queryByCaseNumber($casenumber,$fields);