mjm/telegram-cli-client

用于telegram-cli的php客户端

v0.5.3 2016-12-25 16:13 UTC

This package is not auto-updated.

Last update: 2024-09-23 13:39:01 UTC


README

###更新 2015-12-23

由于我现在没有时间再继续这个项目,并且Telegram发布了它自己的机器人API,因此这个项目未来不会有太多更新。我将尝试解决所有目前开放的问题,以便在问题部分不再有任何遗留(即使我需要用wontfix关闭一些事情)。
如果有人想接管这个项目,我愿意给他推送权限或将他的github/packagist上的分支链接给他。

如果您想将您的项目迁移到新的机器人API,请查看非官方的php-sdk

mjm/telegram-cli-client

用于telegram-cli的php客户端

Packagist Codacy License

需求

  • 一个正在运行的、监听在unix-socket(-S)或端口(-P)上的telegram-cli,并且返回所有答案为JSON(--json)。
    需要已配置(电话号码等)。
  • php >= 5.3.0

使用方法

###配置telegram-cli telegram-cli需要在unix-socket(-S)或端口(-P)上运行,以便telegram-cli-client可以连接到它。所有答案都需要以JSON格式返回(--json)。
您应该使用-W启动它,以便在启动时加载联系人列表。
在这个例子中,我们将使用以下命令(从安装了telegram-cli的目录中执行,而不是php客户端),-d允许它作为守护进程运行。

./bin/telegram-cli --json -dWS /tmp/tg.sck &

如果您使用与您的php脚本不同的用户运行telegram-cli并且您使用linux,您需要更改套接字权限,以便php脚本可以访问它(感谢dennydai提供这个!)。
例如,将它们都添加到telegram-组,然后执行以下操作:

chown :telegram /tmp/tg.sck
chmod g+rwx /tmp/tg.sck

如果您之前从未启动过telegram-cli,您需要首先以正常模式启动它,以便您可以输入您的telegram电话号码并进行注册(如果需要的话,执行./bin/telegram-cli)。

要停止守护进程,请使用killall telegram-clikill -TERM [telegram-pid]

###使用composer安装telegram-cli-client 在您的项目根目录中

composer require --update-no-dev mjm/telegram-cli-client

Composer将自动将包添加到您项目的要求中并安装它(如果您还没有,它还会创建composer.json)。
如果您想使用discovery-shell,请从命令中删除--update-no-dev

###使用它

require('vendor/autoload.php');
$telegram = new \mjm\Telegram\Cli\Client('unix:///tmp/tg.sck');

$contactList = $telegram->getContactList();
$telegram->msg($contactList[0]->print_name, 'Hey man, what\'s up? :D');

###使用discovery-shell使用它 真正简单学习API的方法是使用内置的discover-shell。您需要安装此功能的相关开发依赖项(执行composer update --dev)。

$ ./discovery-shell.php
-- discovery-shell to help discover a class or library --

Use TAB for autocompletion and your arrow-keys to navigate through your method-history.
Beware! This is not a full-featured php-shell. The input gets parsed with PHP-Parser to avoid the usage of
eval().
> $telegram->getContactList();
array(13) {
  [...]
}
> $telegram->msg('my_contact', 'Hi, i am sending this from a php-client for telegram-cli.');
true

文档

要创建文档,只需在项目根目录中运行phpdoc
在线版本可在phpdoc.zyberware.org/zyberspace/telegram-cli-client找到。

支持的命令

您可以使用《RawClient》类的《exec()`》方法执行每个命令,但也有一些命令包装器可用(请参阅文档链接),您应该优先使用(请参阅《example.php》)。
如果您只想使用自己的命令包装器,只需扩展《RawClient》类(负责处理套接字连接并包含一些辅助方法)。

在您的命令包装器中或如果您直接使用《exec()`》,请务必使用《escapePeer()`》对联系人(联系人、聊天名称等)进行转义,并使用《escapeStringArgument()`》对所有字符串参数进行转义,以避免错误。

API稳定性

命令包装器的API将来肯定会发生变化,例如,《getHistory()`》现在只返回telegram-cli的原始答案,实际上并不实用。因此,您现在不应在生产环境中使用此功能。

如果您仍然想在项目中使用此功能,请确保您保持在相同的次要版本(例如《~0.1.0》或《0.1.*》)。.

许可证

本软件依据《Mozilla Public License v. 2.0》许可。欲了解更多信息,请参阅《LICENSE》文件。