alxmsl / telegrambotclient
用于Telegram Bot API的强大客户端
v1.0.4
2015-11-19 05:06 UTC
Requires
- alxmsl/cli: >=2.0.1
- alxmsl/network: >=1.1.0
Requires (Dev)
- phpunit/phpunit: ~5
This package is not auto-updated.
Last update: 2024-09-14 16:55:39 UTC
README
用于Telegram Bot API的强大客户端
优点
- 轻量级。您只需使用两个类即可工作:API客户端和响应
- 强大。同时您可以使用所有16种Bot API 类型和所有13种Bot API 方法
composer
支持简化了安装过程- 独立的命名空间有助于在不同的项目和框架中使用Bot API客户端
- CLI实用工具可以帮助您测试Bot API交互
安装
为了简化使用,您只需要通过composer要求包
$ composer require alxmsl/telegrambotclient
在第三方项目中,在您的composer.json
中要求包
"alxmsl/telegrambotclient": "*"
...然后更新composer: composer update
用法
首先您需要客户端实例。只需创建它即可
use alxmsl\Telegram\Bot\Client;
$Client = new Client('123456789:Y0uR5EcREtT0KEn');
....然后您可以直接调用bot方法并获取API响应字符串
$result = $Client->call(<method name>, <call parameters>);
printf("%s\n", $result);
...或者使用方法包装器
$updates = $Client->getUpdates(0, 1);
var_dump($updates);
方法包装器可以帮助您返回特定结果类型,如API文档中所述。例如,使用getUpdates
,您将返回Update实例的数组,sendMessage
包装器返回您Message对象等。
use alxmsl\Telegram\Bot\Client;
use alxmsl\Telegram\Bot\Type\Message;
$Client = new Client('123456789:Y0uR5EcREtT0KEn');
$Message = $Client->sendMessage(34567, 'hello');
($Message instanceof Message); // that's TRUE
当出现错误时,包装器会抛出UnsuccessfulException
。例如代码
$Client = new Client('123456789:Br0KEnT0kEN');
try {
$Message = $Client->getMe();
} catch (UnsuccessfulException $Ex) {
printf("%s\n%s", $Ex->getCode(), $Ex->getMessage());
}
显示给您
401
Error: Unauthorized
控制台使用
您可以使用脚本call.php
直接调用Telegram Bot API
$ php bin/call.php -h
Using: /usr/local/bin/php bin/call.php [-h|--help] -m|--method [-p|--parameters] -t|--token
-h, --help - show help
-m, --method - bot method name
-p, --parameters - method calls parameters
-t, --token - authentication token
使用实用工具,您可以测试您的bot的认证令牌
$ php bin/call.php -t='123456789:Y0uR5EcREtT0KEn' -m='getMe'
{"ok":true,"result":{"id":123456789,"first_name":"alxmslClientBot","username":"alxmslClientBot"}}
当出现错误时,实用工具将显示Bot API的错误响应
$ php bin/call.php -t='123456789:Br0KEnT0kEN' -m='getMe'
{"ok":false,"error_code":401,"description":"Error: Unauthorized"}
...获取更新等。
$ php bin/call.php -t='123456789:Y0uR5EcREtT0KEn' -m='getUpdates' -p='{"limit":1}'
{"ok":true,"result":[{"update_id":7654321,"message":{"message_id":2,"from":{"id":34567,"first_name":"Alexey","last_name":"Maslov"},"chat":{"id":34567,"first_name":"Alexey","last_name":"Maslov"},"date":1435870467,"text":"\/start"}}]}
测试
要完全运行测试,请调用phpunit
命令
$ phpunit
PHPUnit 4.7.5 by Sebastian Bergmann and contributors.
Runtime: PHP 5.5.23
................
Time: 190 ms, Memory: 9.00Mb
OK (16 tests, 784 assertions)
许可证
版权所有2015年Alexey Maslov alexey.y.maslov@gmail.com
根据Apache License,版本2.0(“许可证”)授权;除非您遵守许可证规定,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或经书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言管理权限和限制,请参阅许可证。