An official PHP library for the Bitrix24 REST API
CI\CD status on master |
---|
Integration tests run in GitHub actions with real Bitrix24 portal
Install the latest version with
composer require bitrix24/b24phpsdk
Or add "bitrix24/b24phpsdk": "1.1.*"
to composer.json
of your application.
Support both auth modes:
Domain core events:
API - level features
Performance improvements 🚀
- http2 protocol via json data structures
- symfony http client
- \Bitrix24\SDK\Core\ApiClient - work with b24 rest-api endpoints
input: arrays \ strings
output: Symfony\Contracts\HttpClient\ResponseInterface, operate with strings
process: network operations
- \Bitrix24\SDK\Services\* - work with b24 rest-api entities
input: arrays \ strings
output: b24 response dto
process: b24 entities, operate with immutable objects
/examples/webhook
foldercomposer install
$webhookUrl
declare(strict_types=1);
use Bitrix24\SDK\Services\ServiceBuilderFactory;
require_once 'vendor/autoload.php';
// init bitrix24-php-sdk service from webhook
$b24Service = ServiceBuilderFactory::createServiceBuilderFromWebhook('INSERT_HERE_YOUR_WEBHOOK_URL');
// call some method
var_dump($b24Service->getMainScope()->main()->getApplicationInfo()->applicationInfo());
// call core for method in not implemented service
var_dump($b24Service->core->call('user.current'));
php -f example.php
/examples/local-app
foldercomposer install
sudo php -S 127.0.0.1:80
https://****.ngrok-free.app
ngrok http 127.0.0.1
x-powered-by
header with 200 status-code.curl https://****.ngrok-free.app -I
HTTP/2 200
content-type: text/html; charset=UTF-8
date: Mon, 26 Aug 2024 19:09:24 GMT
host: ****.ngrok-free.app
x-powered-by: PHP/8.3.8
type
: serverhandler path
: https://****.ngrok-free.app/index.php
Initial installation path
: https://****.ngrok-free.app/install.php
Menu item text
: Test local app
scope
: crm
index.php
file:
Application ID (client_id)
— BITRIX24_PHP_SDK_APPLICATION_CLIENT_ID
Application key (client_secret)
— BITRIX24_PHP_SDK_APPLICATION_CLIENT_SECRET
Assing permitions (scope)
— BITRIX24_PHP_SDK_APPLICATION_SCOPE
declare(strict_types=1);
use Bitrix24\SDK\Core\Credentials\ApplicationProfile;
use Bitrix24\SDK\Services\ServiceBuilderFactory;
use Symfony\Component\HttpFoundation\Request;
require_once 'vendor/autoload.php';
?>
<pre>
Application is worked, auth tokens from bitrix24:
<?= print_r($_REQUEST, true) ?>
</pre>
<?php
$appProfile = ApplicationProfile::initFromArray([
'BITRIX24_PHP_SDK_APPLICATION_CLIENT_ID' => 'INSERT_HERE_YOUR_DATA',
'BITRIX24_PHP_SDK_APPLICATION_CLIENT_SECRET' => 'INSERT_HERE_YOUR_DATA',
'BITRIX24_PHP_SDK_APPLICATION_SCOPE' => 'INSERT_HERE_YOUR_DATA'
]);
$b24Service = ServiceBuilderFactory::createServiceBuilderFromPlacementRequest(Request::createFromGlobals(), $appProfile);
var_dump($b24Service->getMainScope()->main()->getCurrentUserProfile()->getUserProfile());
if you want to create application you can use production-ready contracts in namespace
Bitrix24\SDK\Application\Contracts
:
Bitrix24Accounts
— Store auth tokens and
provides methods for work with Bitrix24
account.ApplicationInstallations
— Store information
about application installation,
linked with Bitrix24 Account with auth
tokens. Optional can store links to:
ContactPersons
– Store information about person
who installed application.Bitrix24Partners
– Store information
about Bitrix24 Partner who supports client
portal and install or configure application.Steps:
tests/Unit/Application/Contracts/*
– examples.Tests locate in folder tests
and we have two test types.
In folder tests create file .env.local
and fill environment variables from .env
.
Call in command line
make lint-phpstan
Call in command line for validate
make lint-rector
Call in command line for fix codebase
make lint-rector-fix
Fast, in-memory tests without a network I\O For run unit tests you must call in command line
make test-unit
Slow tests with full lifecycle with your test Bitrix24 account via webhook.
❗️Do not run integration tests with production Bitrix24 accounts
For running integration test you must:
/tests/.env.local
with same settings, see comments in /tests/.env
file.APP_ENV=dev
BITRIX24_WEBHOOK=https:// your Bitrix24 webhook url
INTEGRATION_TEST_LOG_LEVEL=500
make test-integration-core
make test-integration-scope-telephony
make test-integration-scope-workflows
make test-integration-scope-user
Bugs and feature request are tracked on GitHub
B24PhpSdk is licensed under the MIT License - see the MIT-LICENSE.txt
file for details