SkillAgentSearch skills...

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/Gosms
About this skill

Quality Score

0/100

Supported Platforms

Universal

Tags

README

gosms

Latest Version on Packagist Software License CI codecov Total Downloads

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 key
  • client_secret - string; ApiKey client_secret key
  • credentials - DigitalCz\GoSms\Auth\Credentials instance
  • client - DigitalCz\GoSms\GoSmsClient instance with your custom PSR17/18 objects
  • http_client - Psr\Http\Client\ClientInterface instance of your custom PSR18 client
  • cache - Psr\SimpleCache\CacheInterface for caching Credentials Tokens
  • api_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.

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated1y ago
Forks2

Languages

PHP

Security Score

70/100

Audited on Sep 28, 2024

No findings