ehaerer / php-salesforce-rest-api
PHP Salesforce REST API wrapper
Installs: 28 441
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 2
Forks: 62
Open Issues: 0
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- ergebnis/composer-normalize: ^2.28
- roave/security-advisories: dev-latest
README
Forked from:
bjsmasth/php-salesforce-rest-api
Cleeng/php-salesforce-rest-api
jerkob/php-salesforce-rest-api-forked
Similar packages
- SOQL with Doctrine DBAL: https://github.com/codelicia/trineforce
- Interacting with Salesforce objects: https://github.com/roblesterjr04/EloquentSalesForce
Install
composer require ehaerer/php-salesforce-rest-api
Getting Started
Setting up a Connected App
- Log into 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
Setup
Example
See a full example which could be tested with ddev local in /example folder folder.
Authentication
$options = [ 'grant_type' => 'password', 'client_id' => 'CONSUMERKEY', /* insert consumer key here */ 'client_secret' => 'CONSUMERSECRET', /* insert consumer secret here */ 'username' => 'SALESFORCE_USERNAME', /* insert Salesforce username here */ 'password' => 'SALESFORCE_PASSWORD' . 'SECURITY_TOKEN' /* insert Salesforce user password and security token here */ ]; $salesforce = new \EHAERER\Salesforce\Authentication\PasswordAuthentication($options); /* if you want to login to a Sandbox change the url to https://test.salesforce.com/ */ $endPoint = 'https://login.salesforce.com/'; $salesforce->setEndpoint($endPoint); $salesforce->authenticate(); /* if you need access token or instance url */ $accessToken = $salesforce->getAccessToken(); $instanceUrl = $salesforce->getInstanceUrl(); /* create salesforceFunctions object with instance, accesstoken and API version */ $salesforceFunctions = new \EHAERER\Salesforce\SalesforceFunctions($instanceUrl, $accessToken, "v52.0");
Query
$query = 'SELECT Id,Name FROM ACCOUNT LIMIT 100'; $additionalHeaders = ['key' => 'value']; /* returns array with the queried data */ $data = $salesforceFunctions->query($query, $additionalHeaders);
Create
$data = [ 'Name' => 'Some name', ]; $additionalHeaders = ['key' => 'value']; /* returns the id of the created object or full response */ $accountId = $salesforceFunctions->create('Account', $data, $additionalHeaders); $fullResponse = $salesforceFunctions->create('Account', $data, $additionalHeaders, true);
Update
$newData = [ 'Name' => 'another name', ]; $additionalHeaders = ['key' => 'value']; /* returns statuscode */ $salesforceFunctions->update('Account', $id, $newData, $additionalHeaders);
Upsert
$newData = [ 'Name' => 'another name', ]; $additionalHeaders = ['key' => 'value']; /* returns statuscode */ $salesforceFunctions->upsert('Account', 'API Name/ Field Name', 'value', $newData, $additionalHeaders);
Delete
$additionalHeaders = ['key' => 'value']; $salesforceFunctions->delete('Account', $id, $additionalHeaders);
Describe
$additionalHeaders = ['key' => 'value']; $salesforceFunctions->describe('Account', $additionalHeaders);
Custom endpoint
$additionalHeaders = ['key' => 'value']; $salesforceFunctions->customEndpoint('apex/myCustomEndpoint', $data, 200, $additionalHeaders);
Changelog:
29.03.2022
- updated Guzzle dependency to ^7.4
- added full example in /example folder with ddev local configuration
- added option to add additional headers like on https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/headers.htm
- updated documentation
06.05.2021
- [breaking] switched version parameter in constructor to the end
01.03.2021
- added method to use custom endpoints
08.09.2020
- added describe method
18.01.2020
- switched to PHP >7.0
- renamed class from CRUD to SalesforceFunctions
- added dependency to ext-json in composer package