The RESO API SDK for PHP allows developers to build applications with RESO API queries for listing data retrieval. More information at http://www.reso.org
PHP 5.3.3 and later.
You can install the bindings via Composer. Run the following command:
composer require reso/reso-php
To use the bindings, use Composer's autoload:
require_once('vendor/autoload.php');
If you do not wish to use Composer, you can download the latest release. Then, to use the bindings, include the init.php
file.
require_once('/path/to/reso-php-sdk/init.php');
The following PHP extensions are required for all the RESO API SDK functions to work properly:
If you use Composer, these dependencies will be handled automatically. If you install manually, you'll want to make sure that these extensions are available.
Simple usage looks like:
// Set the variables
RESO\RESO::setClientId('YOUR_CLIENT_ID');
RESO\RESO::setClientSecret('YOUR_CLIENT_SECRET');
RESO\RESO::setAPIAuthUrl('https://op.api.crmls.org/identity/connect/authorize');
RESO\RESO::setAPITokenUrl('https://op.api.crmls.org/identity/connect/token');
RESO\RESO::setAPIRequestUrl('https://h.api.crmls.org/RESO/OData/');
// Authorize user
$auth_code = RESO\OpenIDConnect::authorize('YOUR_USERNAME', 'YOUR_PASSWORD', 'https://openid.reso.org/', 'ODataApi');
// Get access token
RESO\RESO::setAccessToken(RESO\OpenIDConnect::requestAccessToken($auth_code, 'https://openid.reso.org/', 'ODataApi'));
// Set the Accept header (if needed)
RESO\Request::setAcceptType("json");
// Retrieve top 10 properties from the RESO API endpoint
$data = RESO\Request::request('Property?\$top=10', 'json', true);
// Display records
print_r($data);
Several usage examples are provided in the examples/
folder:
cli-example
- provides a sample console application to query RESO API data;web-example
- provides a sample PHP + HTML application to login (auth done on server-side) and execute RESO API requests, retrieve the data;web-callback-example
- provides a sample PHP application, which demonstrates the user auth using callback URL.
To configure the example app variables / settings - copy the config.php file in each example application as _config.php and edit the variables accordingly.
The SDK has a built-in logger for debug / testing purposes. Usage:
// Set logging
RESO\RESO::setLogEnabled(true); // enables logging in general. Default: false.
RESO\RESO::setLogConsole(true); // enables log messages to console.
RESO\RESO::setLogFile(true); // enabled log messages to be written to log file.
The SDK code set contains PHPUnit tests. The tests reside in the tests/
folder and covers core RESO PHP SDK functionality testing.
To run the tests duplicate the tests/config.php file to tests/_config.php and set the appropriate API variables. Then, execute:
./vendor/bin/phpunit --bootstrap init.php tests/