Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/radutopala/skype-bot-php

PHP CLI/Library for the Skype Bot API
https://github.com/radutopala/skype-bot-php

bot-framework php-cli skype skypebot symfony

Last synced: about 21 hours ago
JSON representation

PHP CLI/Library for the Skype Bot API

Awesome Lists containing this project

README

        

# PHP CLI/Library for the Skype Bot API

### 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](https://github.com/radutopala/skype-bot-php/releases/latest) 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
'',
'clientSecret' => '',
]);
$api = $client->authorize()->api('conversation'); // Skype\Api\Conversation
$api->activity('29:', 'Your message');
```

### cli:

Here some usage examples.

```
$ bin/skype auth
$ bin/skype conversation:activity
```

Or with the phar file.

```
php skype.phar auth
php skype.phar conversation:activity
```

## 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' => '',
'clientSecret' => '',
'fileTokenStoragePath' => '',
]);
```

- You can also write your own `TokenStorageInterface::class`

```
$client = new Client([
'clientId' => '',
'clientSecret' => '',
'tokenStorageClass' => DatabaseTokenStorage::class
]);
```
- And you can also pass your custom `tokenStorageService`, a service that must implement `TokenStorageInterface`; usable in Symfony scenarios

```
$client = new Client([
'clientId' => '',
'clientSecret' => '',
'tokenStorageService' => $service
]);
```