https://github.com/coxlr/laravel-ringcentral
A Laravel package for the RingCentral SDK for PHP
https://github.com/coxlr/laravel-ringcentral
laravel php ringcentral
Last synced: 5 months ago
JSON representation
A Laravel package for the RingCentral SDK for PHP
- Host: GitHub
- URL: https://github.com/coxlr/laravel-ringcentral
- Owner: coxlr
- License: mit
- Created: 2020-09-11T01:25:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-09-03T17:28:37.000Z (9 months ago)
- Last Synced: 2025-10-03T04:24:21.154Z (8 months ago)
- Topics: laravel, php, ringcentral
- Language: PHP
- Homepage:
- Size: 38.1 KB
- Stars: 5
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# A Laravel package for the RingCentral SDK for PHP
[](https://img.shields.io/packagist/v/coxlr/laravel-ringcentral.svg?style=flat-squaretps://packagist.org/packages/coxlr/laravel-ringcentral)
[](https://github.com/coxlr/laravel-ringcentral/actions/workflows/run-tests.yml)
[](https://packagist.org/packages/coxlr/laravel-ringcentral)
This is a simple Laravel Service Provider providing access to the [RingCentral SDK for PHP][client-library].
## Installation
This package requires PHP 8.0 and Laravel 8 or higher.
To install the PHP client library using Composer:
```bash
composer require coxlr/laravel-ringcentral
```
The package will automatically register the `RingCentral` provider and facade.
You can publish the config file with:
```bash
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:
```dotenv
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](https://developers.ringcentral.com/guide/authentication/jwt/quick-start).
## 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)
```php
RingCentral::sendMessage([
'to' => '18042221111',
'text' => 'Using the facade to send a message.'
]);
```
Or
```php
$ringcentral = app('ringcentral');
$ringcentral->sendMessage([
'to' => '18042221111',
'text' => 'Using the instance to send a message.'
]);
```
#### Properties
| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| to | true | String | | The number to send the message to, must include country code |
| text | true | String | | The text of the message to send |
### Retrieving Extensions (requires admin access)
```php
RingCentral::getExtensions();
```
Or
```php
$ringcentral = app('ringcentral');
$ringcentral->getExtensions();
```
### Get messages sent and received for the operator
```php
RingCentral::getOperatorMessages();
```
Or
```php
$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.
```php
RingCentral::getOperatorMessages((new \DateTime())->modify('-1 hours'));
```
#### Parameters
| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| fromDate | false | Object | | The date and time to start the search from must be a PHP date object |
| toDate | false | Object | | The date and time to end the search must be a PHP date object |
| perPage | false | Int | 100 | The number of records to return per page |
### Get messages sent and received for a given extension (Needs admin access)
```php
RingCentral::getMessagesForExtensionId(12345678);
```
Or
```php
$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.
```php
RingCentral::getMessagesForExtensionId(12345678, (new \DateTime())->modify('-1 hours'));
```
#### Parameters
| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| extensionId | true | String | | The RingCentral extension Id of the extension to retrieve the messages for |
| fromDate | false | Object | | The date and time to start the search from must be a PHP date object|
| toDate | false | Object | | The date and time to end the search must be a PHP date object |
| perPage | false | Int | 100 | The number of records to return per page |
### Get a messages attachment (requires admin access)
```php
RingCentral::getMessageAttachmentById(12345678, 910111213, 45678910);
```
Or
```php
$ringcentral = app('ringcentral');
$ringcentral->getMessageAttachmentById(12345678, 910111213, 45678910);
```
#### Parameters
| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| extensionId | true | String | | The RingCentral extension Id of the extension the messages belongs to |
| messageId | true | String | | The id of the message of the the attachment belongs to |
| attachmentId | true | String | | The id of the attachment |
For more information on using the RingCentral client library, see the [official client library repository][client-library].
[client-library]: https://github.com/ringcentral/ringcentral-php
## Testing
``` bash
composer test
```
If using the RingCentral sandbox environment when testing set the following environment variable to true to handle sandbox message prefix.
```dotenv
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.
```dotenv
RINGCENTRAL_DELAY_REQUEST_SECONDS=20
```
## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.
## Security
If you discover any security related issues, please email hello@leecox.dev instead of using the issue tracker.
## Credits
- [Lee Cox](https://github.com/coxlr)
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.