alexsisukin / php-telegram-cli-client
用于telegram-cli的php客户端
Requires
- php: >=5.3.0
Requires (Dev)
- zyberspace/discovery-shell: dev-master
README
###更新 2015-12-23
由于我现在没有时间再为此项目工作,并且Telegram发布了它自己的 bot-api,因此未来这个项目不会有太多更新。我将尝试处理所有目前开放的问题,以确保问题部分不再有任何内容(即使我需要用 wontfix
关闭一些问题)。
如果有人想要接管这个项目,我愿意给他推送权限或在他的github/packagist上的分支链接。
如果您想将您的项目移植到新的bot-api,请查看 非官方的php-sdk。
zyberspace/telegram-cli-client
用于 telegram-cli 的php客户端
需求
- 需要运行 telegram-cli,监听在unix-socket(
-S
)或端口(-P
)上,并返回所有答案作为JSON(--json
)。
需要预先配置(电话号码等)。 - php >= 5.3.0
用法
###设置telegram-cli telegram-cli 需要运行在unix-socket(-S
)或端口(-P
)上,以便 telegram-cli-client 可以连接到它。所有答案都需要以JSON(--json
)形式返回。
您还应该使用 -W
启动它,以便在启动时加载联系人列表。
对于此示例,我们将使用以下命令(在安装了telegram-cli的目录中执行,而不是php-client),-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-cli
或 kill -TERM [telegram-pid]
。
###使用composer安装telegram-cli-client 在项目根目录下
composer require --update-no-dev zyberspace/telegram-cli-client
Composer 将自动将包添加到您的项目需求中并安装它(如果还没有,也会创建 composer.json
)。
如果您想使用发现外壳,请从命令中删除 --update-no-dev
。
###使用它
require('vendor/autoload.php'); $telegram = new \Zyberspace\Telegram\Cli\Client('unix:///tmp/tg.sck'); $contactList = $telegram->getContactList(); $telegram->msg($contactList[0]->print_name, 'Hey man, what\'s up? :D');
###使用它与发现外壳 通过嵌入的 discover-shell,可以轻松地学习API。您需要为此安装开发依赖项(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 上找到。
支持的命令
您可以使用 exec()
方法从 RawClient
类执行每个命令,但还有一些命令包装器可供使用(doc-link),您应该优先使用(请参阅 example.php
)。
如果您只想使用自己的命令包装器,只需扩展RawClient
类(负责处理socket连接并提供一些辅助方法)。
在您的命令包装器中,或者如果您直接使用exec()
,请记住使用escapePeer()
转义对等方(联系人、聊天名称等),并使用escapeStringArgument()
转义所有字符串参数,以避免错误。
API稳定性
命令包装器的API在未来肯定会发生变化,例如,当前getHistory()
仅返回telegram-cli的原始答案,并不真正有用。因此,您不应在生产环境中使用此功能。
如果您仍然想在项目中使用它,请确保您保持相同的次要版本(例如~0.1.0
或0.1.*
)。.
许可
本软件根据Mozilla公共许可证v. 2.0授权。有关更多信息,请参阅文件LICENSE
。