私はthis APIの助けを借りてテレグラムボットを開発しています。私はwebhookメソッドで実装しようとしました。まずgetUpdatedメソッドでボットを試してみました。しかし、私はwebhookにそれを更新したとき、それは動作していないようです。テレグラムwebhookがPython APIで動作しないようです
私はhttpsドメインを持っているので、this exampleにちなんで正確にフラスコ付きウェブフックを実装しました.SSL証明書とIPを除いて、IPと自己署名証明書を使用する代わりに自分のドメインを使用しました。
私は私のウェブフックを郵便配達員と一緒にテストし、私がapi.telegram.orgから得たデータでリクエストを送信しました。そして再び機能しましたが、テレグラムアプリケーションのボットにメッセージを送信すると、サーバーは、それが想定されているように電報がメッセージを送信しないようです。
編集:ここで私は、私はあなたがドメイン名または実際のIPアドレスを使用sould考えるより明確
WEBHOOK_HOST = 'mywebsite.com'
WEBHOOK_PORT = '8443'
WEBHOOK_LISTEN = '0.0.0.0'
WEBHOOK_SSL_CERT = "/etc/letsencrypt/live/mywebsite.com/cert.pem"
WEBHOOK_PRIV_CERT = "/etc/letsencrypt/live/mywebsite.com/privkey.pem"
WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT)
WEBHOOK_URL_PATH = "/%s/" % (TOKEN.get_token())
router = flask.Flask(__name__)
@router.route('/', methods=['GET', 'HEAD'])
def index():
return 'OK'
@router.route(WEBHOOK_URL_PATH, methods=['POST'])
def webhook():
if flask.request.headers.get('content-type') == 'application/json':
json_string = flask.request.json
print json_string["message"]["text"] # here I should get the text of message
return ''
else:
flask.abort(403)
bot.remove_webhook()
time.sleep(3)
bot.set_webhook(url=WEBHOOK_URL_BASE+WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r'))
router.run(host=WEBHOOK_LISTEN, port=int(WEBHOOK_PORT), ssl_context=(WEBHOOK_SSL_CERT, WEBHOOK_PRIV_CERT), debug=True)
はい、これはあなたの質問に答えることはできませんが、とにかく:[このpythonラッパー](https://github.com/python-telegram-bot/python-telegram-bot )?それは最新のテレグラムAPIをサポートしています(あなたのラッパーはありません)、すぐに役立つテレグラムグループがあり、使用するラッパーより頻繁に使用されます。ちょうど言って... – Endogen
@Endogen私もそのラッパーを試してみます、ありがとう。あなたが言ったテレグラムグループのリンクを私に教えてもらえますか? –