radutopala / skype-bot-php
Skype Bot CLI & Library Client
Installs: 4 019
Dependents: 0
Suggesters: 0
Security: 0
Stars: 65
Watchers: 8
Forks: 17
Open Issues: 2
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.2
- mattketmo/camel: ~1.1
- padraic/phar-updater: ^1.0
- phpdocumentor/reflection-docblock: ~3.0
- rybakit/arguments-resolver: ~0.5.0
- symfony/console: ^2.8|^3
- symfony/filesystem: ^2.8|^3
- symfony/yaml: ^2.8|^3
This package is not auto-updated.
Last update: 2024-10-26 19:53:44 UTC
README
API Docs: https://developer.microsoft.com/en-us/skype/bots/docs
Installation
There are 2 ways to install it:
- Download the Phar
- Install as a Composer Package
Download the Phar
download the latest version from the Releases section or from the cli:
$ wget https://github.com/radutopala/skype-bot-php/releases/download/1.0.0/skype.phar && chmod +x skype.phar
Install as a Composer Package
$ composer require radutopala/skype-bot-php
Usage
programmatic:
<?php use Skype\Client; $client = new Client([ 'clientId' => '<yourClientId>', 'clientSecret' => '<yourClientSecret>', ]); $api = $client->authorize()->api('conversation'); // Skype\Api\Conversation $api->activity('29:<skypeHash>', 'Your message');
cli:
Here some usage examples.
$ bin/skype auth <yourClientId>
$ bin/skype conversation:activity <to> <message>
Or with the phar file.
php skype.phar auth <yourClientId>
php skype.phar conversation:activity <to> <message>
Tips
-
If used as a library, the HTTP Guzzle Client will automatically try to re-authenticate using a Guzzle middleware, if the
access_token
will expire in the following 10 minutes. -
If used as a phar, you can update it to latest version using
skype.phar self-update
-
If used as a library, you can store the token configs in your own preffered file path, as follows:
$client = new Client([ 'clientId' => '<yourClientId>', 'clientSecret' => '<yourClientSecret>', 'fileTokenStoragePath' => '<yourOwnPath>', ]);
-
You can also write your own
TokenStorageInterface::class
$client = new Client([ 'clientId' => '<yourClientId>', 'clientSecret' => '<yourClientSecret>', 'tokenStorageClass' => DatabaseTokenStorage::class ]);
-
And you can also pass your custom
tokenStorageService
, a service that must implementTokenStorageInterface
; usable in Symfony scenarios$client = new Client([ 'clientId' => '<yourClientId>', 'clientSecret' => '<yourClientSecret>', 'tokenStorageService' => $service ]);