coxlr / laravel-ringcentral
A Laravel package for the RingCentral SDK for PHP
Installs: 9 689
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 4
Open Issues: 0
Requires
- php: ^8.0
- ringcentral/ringcentral-php: ^2.2.5|^3.0.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.25
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.3.0|^10.0
- vimeo/psalm: ^3.18|^4.18|^5.23
- vlucas/phpdotenv: ^5.3
README
This is a simple Laravel Service Provider providing access to the RingCentral SDK for PHP.
Installation
This package requires PHP 8.0 and Laravel 8 or higher.
To install the PHP client library using Composer:
composer require coxlr/laravel-ringcentral
The package will automatically register the RingCentral
provider and facade.
You can publish the config file with:
php artisan vendor:publish --provider="Coxlr\RingCentral\RingCentralServiceProvider" --tag="config"
Then update config/ringcentral.php
with your credentials. Alternatively, you can update your .env
file with the following:
RINGCENTRAL_CLIENT_ID=my_client_id RINGCENTRAL_CLIENT_SECRET=my_client_secret RINGCENTRAL_SERVER_URL=my_server_url RINGCENTRAL_USERNAME=my_username RINGCENTRAL_OPERATOR_TOKEN=my_operator_jwt #If admin details are a different extension to the operator RINGCENTRAL_ADMIN_TOKEN=my_admin_jwt
This package uses the JWT autentication method. You can learn more about setting up JWT for your RingCentral account here.
Usage
To use the RingCentral Client Library you can use the facade, or request the instance from the service container.
Sending an SMS message (requires login in extension to be company operator)
RingCentral::sendMessage([ 'to' => '18042221111', 'text' => 'Using the facade to send a message.' ]);
Or
$ringcentral = app('ringcentral'); $ringcentral->sendMessage([ 'to' => '18042221111', 'text' => 'Using the instance to send a message.' ]);
Properties
Retrieving Extensions (requires admin access)
RingCentral::getExtensions();
Or
$ringcentral = app('ringcentral'); $ringcentral->getExtensions();
Get messages sent and received for the operator
RingCentral::getOperatorMessages();
Or
$ringcentral = app('ringcentral'); $ringcentral->getOperatorMessages();
The default from date is the previous 24 hours, to specify the date to search from pass the require date as a parameter.
RingCentral::getOperatorMessages((new \DateTime())->modify('-1 hours'));
Parameters
Get messages sent and received for a given extension (Needs admin access)
RingCentral::getMessagesForExtensionId(12345678);
Or
$ringcentral = app('ringcentral'); $ringcentral->getMessagesForExtensionId(12345678);
The default from date is the previous 24 hours, to specficy the date to search from pass the require date as a parameter.
RingCentral::getMessagesForExtensionId(12345678, (new \DateTime())->modify('-1 hours'));
Parameters
Get a messages attachment (requires admin access)
RingCentral::getMessageAttachmentById(12345678, 910111213, 45678910);
Or
$ringcentral = app('ringcentral'); $ringcentral->getMessageAttachmentById(12345678, 910111213, 45678910);
Parameters
For more information on using the RingCentral client library, see the official client library repository.
Testing
composer test
If using the RingCentral sandbox environment when testing set the following environment variable to true to handle sandbox message prefix.
RINGCENTRAL_IS_SANDBOX=true
An optional environment value can be set to prevent hitting RingCentral rate limits when testing. This will add a delay for the set seconds before each test.
RINGCENTRAL_DELAY_REQUEST_SECONDS=20
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email hey@leecox.me instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.