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()); }
* * 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(); }