Telegram-cli:脚本不发送消息
Telegram-cli : Script not sending message
我正在用 Telegram-cli 制作一个简单的 bash 脚本,我在其中发送了 2 个参数(目的地和消息),它应该向目的地发送一条 Telegram 消息 (Name_FamilyName) .
脚本如下所示:
#!/bin/bash
destination=;
message=;
(echo "msg $destination $message"; echo "safe_quit") | bin/telegram-cli -k tg-server.pub -W
这样一来,理论上应该可以发送消息了。我更改了脚本的权限,我用下面的方式调用它:
./script_send_message.sh Max_Musterman "Hola qute tal estas"
这就是我得到的输出:
Telegram-cli version 1.2.0, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 1.2.0
I: config dir=[/home/machine/.telegram-cli]
> msg Max_Musterman Hola qute tal estas
> safe_quit
User Max_Musterman updated username
User Max_Musterman online (was online [2015/04/09 06:56:04])
User Test Phone offline (was online [2015/04/09 06:51:42])
> > All done. Exit
halt
根本没有消息发送。 Insted,如果我从控制台发送完全相同的消息,它工作正常。这是我的工作:
bin/telegram-cli -k server.pub -W
Telegram-cli version 1.2.0, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 1.2.0
I: config dir=[/home/machine/.telegram-cli]
User Max_Musterman updated username
User Max_Musterman online (was online [2015/04/09 06:59:46])
User Max_Musterman offline (was online [2015/04/09 06:51:42])
> msg Max_Musterman Hola qute tal estas
[06:57] Max_Musterman <<< Hola qute tal estas
User Max_Musterman marked read 1 outbox and 0 inbox messages
User Max_Musterman offline (was online [2015/04/09 06:57:29])
>
我 运行 没主意了。我开始认为,不知何故,在脚本中发送命令 msg 时联系人列表未加载,因此它什么也不发送(在控制台中,如果您向虚构的用户发送消息,它不会执行任何操作就像在脚本中一样)。
有没有人经历过类似的事情?任何解决方案?感谢您的帮助。
看起来当您从脚本中 运行 telegram_cli 时,需要一些时间才能发送任何消息(直到它至少显示用户列表)。如果您在加载用户列表之前发送消息,您将无法发送任何内容。所以一个快速修复(或者我们可以称之为顽皮的 hack)是告诉脚本等待 3 秒发送消息:
#!/bin/bash
destination=;
message=;
(sleep 3;echo "msg $destination $message"; echo "safe_quit") | bin/telegram-cli -k tg-server.pub -W
也许你必须将 sleep3 更改为 sleep 5 或类似的东西,但之后它应该能够发送消息。
您还有其他选择:
您可以使用“-e”选项和 user_id,而不是通过管道将命令发送到 telegram-cli,这样:
telegram-cli -RD -e "msg user#nnnnnnn Hola caracola"
其中 nnnnn 是 user_id。您可以通过 "user_info ....." 命令找到它。
这样你就不用睡觉了,只要让 telegram-cli 做所有的工作,不用 -W 命令 telegram 不需要获取你所有的联系人。
我正在用 Telegram-cli 制作一个简单的 bash 脚本,我在其中发送了 2 个参数(目的地和消息),它应该向目的地发送一条 Telegram 消息 (Name_FamilyName) .
脚本如下所示:
#!/bin/bash
destination=;
message=;
(echo "msg $destination $message"; echo "safe_quit") | bin/telegram-cli -k tg-server.pub -W
这样一来,理论上应该可以发送消息了。我更改了脚本的权限,我用下面的方式调用它:
./script_send_message.sh Max_Musterman "Hola qute tal estas"
这就是我得到的输出:
Telegram-cli version 1.2.0, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 1.2.0
I: config dir=[/home/machine/.telegram-cli]
> msg Max_Musterman Hola qute tal estas
> safe_quit
User Max_Musterman updated username
User Max_Musterman online (was online [2015/04/09 06:56:04])
User Test Phone offline (was online [2015/04/09 06:51:42])
> > All done. Exit
halt
根本没有消息发送。 Insted,如果我从控制台发送完全相同的消息,它工作正常。这是我的工作:
bin/telegram-cli -k server.pub -W
Telegram-cli version 1.2.0, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 1.2.0
I: config dir=[/home/machine/.telegram-cli]
User Max_Musterman updated username
User Max_Musterman online (was online [2015/04/09 06:59:46])
User Max_Musterman offline (was online [2015/04/09 06:51:42])
> msg Max_Musterman Hola qute tal estas
[06:57] Max_Musterman <<< Hola qute tal estas
User Max_Musterman marked read 1 outbox and 0 inbox messages
User Max_Musterman offline (was online [2015/04/09 06:57:29])
>
我 运行 没主意了。我开始认为,不知何故,在脚本中发送命令 msg 时联系人列表未加载,因此它什么也不发送(在控制台中,如果您向虚构的用户发送消息,它不会执行任何操作就像在脚本中一样)。
有没有人经历过类似的事情?任何解决方案?感谢您的帮助。
看起来当您从脚本中 运行 telegram_cli 时,需要一些时间才能发送任何消息(直到它至少显示用户列表)。如果您在加载用户列表之前发送消息,您将无法发送任何内容。所以一个快速修复(或者我们可以称之为顽皮的 hack)是告诉脚本等待 3 秒发送消息:
#!/bin/bash
destination=;
message=;
(sleep 3;echo "msg $destination $message"; echo "safe_quit") | bin/telegram-cli -k tg-server.pub -W
也许你必须将 sleep3 更改为 sleep 5 或类似的东西,但之后它应该能够发送消息。
您还有其他选择:
您可以使用“-e”选项和 user_id,而不是通过管道将命令发送到 telegram-cli,这样:
telegram-cli -RD -e "msg user#nnnnnnn Hola caracola"
其中 nnnnn 是 user_id。您可以通过 "user_info ....." 命令找到它。
这样你就不用睡觉了,只要让 telegram-cli 做所有的工作,不用 -W 命令 telegram 不需要获取你所有的联系人。