3

bash linux ubuntuのコマンドラインから電報にアクセスするためのライブラリを使用しています。テレグラムクリです。参照https://github.com/vysheng/tg

これはインタラクティブなプログラムで、

./bin/telegram-cli -k tg-server.pub

次の行が出力されます。

Telegram-cli version 1.1.1, Copyright (C) 2013-2014 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.
I: config dir=[/home/utonto/.telegram-cli]
>

">" プロンプトで。メッセージを送信するには、このプロンプトで入力する必要があります

msg USERNAME This is a test message

仕事中の室温を教えてくれるスクリプトを PC で実行したいと思います。どうやってやるの?SOを検索したところ、同様の質問が見つかりました。「expect」コマンドを使用するように勧められたので、そのようにしましたが、機能しませんでした。たぶん - 確かに - 私は初心者です。私も試しました

echo "msg USERNAME this is a message |
telegram-cli -k ......"

しかし、うまくいきませんでした。ご存じのとおり、私のアンドロイドにはテレグラムに使用する電話番号がありますが、別の電話を使用してテレグラムクリに登録しました。誰かが私を助けることができますか?

4

3 に答える 3

4

ここを参照してください:Telegramによるリモートコントロール

新しい着信メッセージをインターセプトするために、action.lua ファイルを作成します。

「Lua は、強力、高速、軽量、組み込み可能なスクリプト言語です。

Lua は、単純な手続き型構文と、連想配列と拡張可能なセマンティクスに基づく強力なデータ記述構造を組み合わせています。Lua は動的に型付けされ、レジスタベースの仮想マシンのバイトコードを解釈して実行され、インクリメンタル ガベージ コレクションによる自動メモリ管理を備えているため、構成、スクリプト作成、およびラピッド プロトタイピングに最適です。」

http://www.lua.orgから。

sudo nano /home/pi/tg/action.lua

この内容で

function on_msg_receive (msg)
    if msg.out then
        return
    end
    if (msg.text=='ping') then
        send_msg (msg.from.print_name, 'pong', ok_cb, false)
    end
end

function on_our_id (id)
end

function on_secret_chat_created (peer)
end

function on_user_update (user)
end

function on_chat_update (user)
end

function on_get_difference_end ()
end

function on_binlog_replay_end ()
end

保存して終了します。着信テキスト メッセージが「ping」の場合、Telegram は「pong」を含むテキスト メッセージで応答します。

move in tg

cd /home/pi/tg

次に、入力します

bin/telegram-cli -k tg-server.pub -W -s action.lua
于 2015-01-25T11:21:28.457 に答える
1

ヒアドキュメントを試してください:

#!/bin/bash
./bin/telegram-cli -k tg-server.pub <<-EOF
msg USERNAME This is a test message
exit
EOF

exit を追加しました - 必要かどうかわかりません。注: EOF は、シェルがコマンドとして解釈できない任意の文字列である可能性があります。最初の EOF の前の - は、次の EOF が左端の列にないことをヒア ドキュメントに伝えるためにあります。省略した場合、最後の EOF は可能な限り左にある必要があります。列 1。

温度の取得に関しては、特別なハードウェアなしでどのように行うかわかりません。

于 2014-12-28T03:37:01.980 に答える
0

コンピューターに温度を取得する何らかの方法がある場合、bash に温度を送信させるのは非常に簡単です。定期的なタスクを処理する適切な方法は、 を使用することcronです。スクリプトを起動するエントリを作成しcrontabます (または、温度自体をテレグラムに直接送信します)。a の形式cron entryは次のとおりです。

* * * * * command_to_execute
| | | | |
| | | | +- day of week  (0-6) (Sunday = 0)
| | | +--- month        (1-12)
| | +----- day of month (1-31)
| +------- hour         (0-23)
+--------- minute       (0-59)

あなたの場合、(crontabエントリを編集するために)crontabを使用して設定できます。crontab -e10 分ごとに温度を送信するには、次のようにします。

*/10 * * * * ./script/to/call

crontabまたは、次のようなものを使用して、テレグラムを直接呼び出してみることもできます。

*/10 * * * * echo "msg $USER The current temp is: $temperature" | ./bin/telegram-cli -k tg-server.pub

最後に、 のオプションをよく確認してください。telegram-cliメッセージを引数として取り、対話モードを完全に回避して転送するものがある可能性が非常に高いです (私は確認していません)。

于 2014-12-28T05:28:03.493 に答える