我正在用Telegram-cli制作一个简单的bash脚本,在这个脚本中我发送了两个参数(destination和message),它应该发送一个Telegram消息给目的地(Name_FamilyName)。
该脚本如下所示:
#!/bin/bash destination=$1; message=$2; (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
根本没有消息发送。 绝望,如果我从控制台发送完全相同的消息,它工作正常。 这是我做的:
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时,联系人列表没有被加载,所以它不会发送任何东西(在控制台中,如果你发送消息给组成用户的话,它什么都不会做就像在脚本中)。
有没有人遇到类似的东西? 任何解决scheme 感谢您的帮助。
你有其他的选择:
而不是管道命令电报cli你可以使用“-e”选项和user_id,这样:
telegram-cli -RD -e "msg user#nnnnnnn Hola caracola"
其中nnnnn是user_id。 你可以通过“user_info …..”命令找到它。
这样你就不需要睡觉,只要让电报服务器做所有的工作,而不用使用-W命令的电报就不需要获取所有的联系人。
看起来像从脚本运行telegram_cli时,需要一点时间才能发送任何消息(至少显示用户列表)。 如果您在用户列表加载之前发送消息,您将无法发送任何内容。 所以快速修复(或者我们可能称之为顽皮的黑客攻击)是告诉脚本等待3秒发送消息:
#!/bin/bash destination=$1; message=$2; (sleep 3;echo "msg $destination $message"; echo "safe_quit") | bin/telegram-cli -k tg-server.pub -W
也许你必须改变睡眠3睡觉5或类似的东西,但它应该能够发送消息之后。