예제 #1
0
 public function testGetRequest()
 {
     $Class = new ReflectionClass(Client::class);
     $Method = $Class->getMethod('getRequest');
     $Method->setAccessible(true);
     $Client = new Client('AAA');
     $Client->setConnectTimeout(1)->setRequestTimeout(5);
     /** @var Request $Request */
     $Request = $Method->invoke($Client, 'getUpdates', ['offset' => 2, 'limit' => 1]);
     $this->assertInstanceOf(Request::class, $Request);
     $this->assertEquals('https://api.telegram.org', $Request->getUrl());
     $this->assertSame(1, $Request->getConnectTimeout());
     $this->assertSame(5, $Request->getTimeout());
     $this->assertEquals(['botAAA' => 'getUpdates'], $Request->getUrlData());
     $this->assertEquals(['offset' => 2, 'limit' => 1], $Request->getPostData());
 }
예제 #2
0
 *
 * Utility for Telegram Bot API method call
 * @author alxmsl
 */
include __DIR__ . '/../vendor/autoload.php';
use alxmsl\Cli\CommandPosix;
use alxmsl\Cli\Option;
use alxmsl\Cli\Exception\RequiredOptionException;
use alxmsl\Telegram\Bot\Client;
$key = '';
$methodName = '';
$parameters = [];
$Command = new CommandPosix();
$Command->appendHelpParameter('show help');
$Command->appendParameter(new Option('method', 'm', 'bot method name', Option::TYPE_STRING, true), function ($name, $value) use(&$methodName) {
    $methodName = $value;
});
$Command->appendParameter(new Option('parameters', 'p', 'method calls parameters', Option::TYPE_STRING), function ($name, $value) use(&$parameters) {
    $parameters = json_decode($value, true);
});
$Command->appendParameter(new Option('token', 't', 'authentication token', Option::TYPE_STRING, true), function ($name, $value) use(&$key) {
    $key = $value;
});
try {
    $Command->parse(true);
    $Client = new Client($key);
    $result = $Client->call($methodName, $parameters);
    printf("%s\n", $result);
} catch (RequiredOptionException $Ex) {
    $Command->displayHelp();
}