2017 © Pedro Peláez
 

library skype-bot-php

Skype Bot CLI & Library Client

image

radutopala/skype-bot-php

Skype Bot CLI & Library Client

  • Wednesday, February 14, 2018
  • by radutopala
  • Repository
  • 7 Watchers
  • 49 Stars
  • 1,473 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 13 Forks
  • 2 Open issues
  • 5 Versions
  • 3 % Grown

The README.md

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:, (*1)

  • Download the Phar
  • Install as a Composer Package

Download the Phar

download the latest version from the Releases section or from the cli:, (*2)

$ 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., (*3)

$ bin/skype auth <yourClientId>
$ bin/skype conversation:activity <to> <message>

Or with the phar file., (*4)

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:, (*5)

    $client = new Client([
        'clientId' => '<yourClientId>',
        'clientSecret' => '<yourClientSecret>',
        'fileTokenStoragePath' => '<yourOwnPath>',
    ]);
    
  • You can also write your own TokenStorageInterface::class, (*6)

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

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

The Versions