Gosms
Provides communication with GoSMS.cz (see https://doc.gosms.cz/) in PHP via PSR-18 http client. Implemented standards PSR18 http client, PSR17 Discovery and PSR16 cache.
Install / Use
/learn @digitalcz/GosmsREADME
gosms
GoSms PHP library - provides communication with https://doc.gosms.cz in PHP using PSR-18 HTTP Client, PSR-17 HTTP Factories and PSR-16 SimpleCache.
Install
Via Composer
$ composer require digitalcz/gosms
Configuration
Example configuration in PHP
use DigitalCz\GoSms\Auth\ApiKeyCredentials;
use DigitalCz\GoSms\GoSms;
// Via constructor options
$goSms = new GoSms([
'client_id' => '...',
'client_secret' => '...'
]);
// Or via methods
$goSms = new GoSms();
$goSms->setCredentials(new ApiKeyCredentials('...', '...'));
Available constructor options
client_id- string; ApiKey client_id keyclient_secret- string; ApiKey client_secret keycredentials- DigitalCz\GoSms\Auth\Credentials instanceclient- DigitalCz\GoSms\GoSmsClient instance with your custom PSR17/18 objectshttp_client- Psr\Http\Client\ClientInterface instance of your custom PSR18 clientcache- Psr\SimpleCache\CacheInterface for caching Credentials Tokensapi_base- string; override the base API url
Available configuration methods
use DigitalCz\GoSms\Auth\Token;
use DigitalCz\GoSms\Auth\TokenCredentials;
use DigitalCz\GoSms\GoSms;
use DigitalCz\GoSms\GoSmsClient;
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
use Symfony\Component\Cache\Psr16Cache;
use Symfony\Component\HttpClient\Psr18Client;
$goSms = new GoSms();
// To set your own PSR-18 HTTP Client, if not provided Psr18ClientDiscovery is used
$goSms->setClient(new GoSmsClient(new Psr18Client()));
// If you already have the auth-token, i can use TokenCredentials
$goSms->setCredentials(new TokenCredentials(new Token('...', 123)));
// Cache will be used to store auth-token, so it can be reused in later requests
$goSms->setCache(new Psr16Cache(new FilesystemAdapter()));
// Overwrite API base
$goSms->setApiBase('https://example.com/api');
Example configuration in Symfony
services:
DigitalCz\GoSms\GoSms:
$options:
# minimal config
client_id: '%gosms.client_id%'
client_secret: '%gosms.client_secret%'
# other options
cache: '@psr16.cache'
http_client: '@psr18.http_client'
Usage
Create and send Message
$goSms = new DigitalCz\GoSms\GoSms(['client_id' => '...', 'client_secret' => '...']);
$organization = $goSms->organization()->detail();
echo "Detail organization " . var_dump($organization) . PHP_EOL;
$messages = $goSms->messages();
$message = $messages->create(
[
'message' => 'Hello Hans, please call me back.',
'recipients' => '+420775300500',
'channel' => 6,
],
);
echo "Created Message " . $message->link() . PHP_EOL;
$message = $messages->get('example_message_id');
echo "Detail Message " . var_dump($message) . PHP_EOL;
$messages->delete('example_message_id');
echo "Message was deleted " . PHP_EOL;
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer csfix # fix codestyle
$ composer checks # run all checks
# or separately
$ composer tests # run phpunit
$ composer phpstan # run phpstan
$ composer cs # run codesniffer
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email devs@digital.cz instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
