alxmsl/telegrambotclient

用于Telegram Bot API的强大客户端

v1.0.4 2015-11-19 05:06 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:55:39 UTC


README

License Latest Stable Version Total Downloads

Build Status Scrutinizer Code Quality Code Coverage Dependency Status

用于Telegram Bot API的强大客户端

优点

  1. 轻量级。您只需使用两个类即可工作:API客户端响应
  2. 强大。同时您可以使用所有16种Bot API 类型和所有13种Bot API 方法
  3. composer支持简化了安装过程
  4. 独立的命名空间有助于在不同的项目和框架中使用Bot API客户端
  5. 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

除非适用法律要求或经书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言管理权限和限制,请参阅许可证。