15

Telegram 経由で Python スクリプトからメッセージを送信したいと考えています。vysheng の元のバージョンと luckydonaldパッチを適用したバージョンの両方で、 telegram-cli を介してそれを実行しようとしました。両方とも、自分の電話にメッセージを正常に送信できました。私の問題は次のとおりです。

  • pytg2 はきれいにインストールされませんでした (インポート DictObject は失敗します。どうやら作成者は pypi でこれを個別に持っているようですが、その時点で停止しました)。私は欲しい。
  • そこで実行される tg コンソール環境への入力を取得できません。<<EOF ... EOFこのSO の質問のように入力できませんでした。プログラムはコンソールで開きますが、何も出力しません。
  • -P オプションでポートを開くとうまくいきました。その後、nc 環境 ( tg wikiと同様) から操作できますが、これらすべての呼び出しを Python スクリプトに実装することが賢明かどうかはわかりません。

  • コマンドをtgにエコーする別のスクリプトも見つけました(ソースを忘れました)が、どちらも機能しませんでした(<<EOF上記と同様の動作)

    #!/bin/bash
    to=Matthias_SG
    msg="test message"
    tgpath=/home/matthias/dvl/tg
    cd ${tgpath}
    (echo "add_contact +xxx Matthias SG"; echo "msg $to $msg") | ${tgpath}/bin/telegram-cli -k tg-server.pub
    

だから私の質問は: 古い pytg に戻るべきですか? subprocess.call または popen から stringIO を入力して、シェル スクリプトを修正したり、Python に修正したりできますか? これを堅牢な方法で使用している人はいますか?

バックグラウンド

4

2 に答える 2

32

最初のステップは、ボットを作成してtoken.

2番目のステップは、次のものを取得することchat_idです:

  • チャットに何か書く
  • にアクセスして、キーの下https://api.telegram.org/bot<YourBOTToken>/getUpdatesを取得します。chat_idmessage['chat']['id']

最後のステップは、次のコードを使用することです。

import requests

def telegram_bot_sendtext(bot_message):

   bot_token = ''
   bot_chatID = ''
   send_text = 'https://api.telegram.org/bot' + bot_token + '/sendMessage?chat_id=' + bot_chatID + '&parse_mode=Markdown&text=' + bot_message

   response = requests.get(send_text)

   return response.json()


test = telegram_bot_sendtext("Testing Telegram bot")
print(test)

Medium.comから抜粋したコード: Telegram ボットを作成し、Python でメッセージを送信する方法

于 2019-11-22T05:11:03.997 に答える