問題タブ [telegram-bot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 電報ボットで認証を取得するにはどうすればよいですか?
電報ボットの準備が整いました。
Web ブラウザと Web サイトにたとえると、テレグラム クライアント アプリケーションはブラウザ クライアントに似ています。
テレグラム チャットルームはウェブサイトのようなものです。
特定のユーザーのみに制限したい情報があるとします。Web サイトには認証があります。
電報ボットで同じ効果を得るにはどうすればよいですか?
ディープリンクが使えると言われました。説明はこちら
以下に再現します。
- @ExampleComBot などの適切なユーザー名でボットを作成します。
- 受信メッセージ用の Webhook を設定する
- 十分な長さのランダムな文字列を生成します (例: $memcache_key = "vCH1vGWJxfSeofSAs0K5PA")。
- 値 123 とキー $memcache_key を Memcache に 3600 秒 (1 時間) 挿入します。
- ユーザーにボタンhttps://telegram.me/ExampleComBot?start=vCH1vGWJxfSeofSAs0K5PAを表示します
- /start で始まる受信メッセージで渡されるパラメーターを使用して Memcached にクエリを実行するように Webhook プロセッサを構成します。キーが存在する場合は、webhook に渡された chat_id をユーザー 123 の telegram_chat_id として記録します。Memcache からキーを削除します。
- ここで、ユーザー 123 に通知を送信する場合、フィールド telegram_chat_id があるかどうかを確認します。はいの場合は、ボット API の sendMessage メソッドを使用して、Telegram でメッセージを送信します。
ステップ1のやり方は知っています。
残りを理解したい。
これは、ステップ 2 を解読しようとしたときに頭に浮かんだイメージです。
したがって、さまざまなテレグラム クライアントは、アプリケーションで ExampleBot と通信するときに、テレグラム サーバーと通信します。通信は双方向です。
ステップ 2 は、Telegram サーバーが Webhook を介して ExampleBot サーバーを更新することを示唆しています。Webhook は単なる URL です。
これまでのところ、私は正しいですか?
これを認証に使用するための次のステップは何ですか?
telegram-bot - Telegram ボット API は Webhook に JSON POST データを送信しません
Webhook の JSON POST データを取得できないようです。すべてを正しく設定し (Webhook URL、サーバーが POST リクエストを取得しているかどうかもテスト済み)、ユーザーが何かを投稿するとリクエストが送信されますが、POST データも GET データもログに記録されません。これは一般的なバグですか、それとも私だけですか?
python - urlopen から取得した投稿画像
写真を投稿するために、Telegram Bot APIにファイルを送信します。私は Google App Engine で python を使用しています。URL から画像をダウンロードし、ディスク上に中間ファイルを作成せずに、Telegram メッセージで送信したいと考えています (これはプラットフォームでは不可能だと思います)。
ディスクから取得した画像は送信できましたが、URL から取得した画像は送信できません。作業コードは次のとおりです。
urlopen で写真を取得しても機能しません。StringIO を使用してみましたが、どちらも機能しません。何か案は?
json - サーバーなしで Telegram ボットをセットアップする
私はWeb技術に精通していないので、電報ボットに単純なことをさせる方法があるかどうかを知りたいです-setWebhookを使用することです(誰かが送信するたびに同じメッセージを何度も繰り返すなど)メッセージ)サーバーをセットアップせずに。
JSONオブジェクトを解析してchat_idを取得してメッセージを送信できるようにする必要があるため、これを回避する方法はないと思います...しかし、ここの誰かが方法を知っていることを願っています.
例えば
ハードコーディングされたチャットIDでテストしましたが、動作します...しかし、もちろん、メッセージを受信した場所に関係なく、常に同じチャットにのみメッセージを送信します.
api - Telegram ボット API webHook でオフセットを使用する方法
2 日間以来、私は Telegram ボット API を調査してきました。これは非常に優れています。しかし、私が理解できないことが1つあります。
webHook を使用せずに呼び出しを使用する場合、パラメーターを介して、サーバーによって処理されたメッセージを/getUpdates
API に伝えることができます。offset
しかし、webHook を使用してこれを行うにはどうすればよいでしょうか。更新と同じメッセージが表示され続けます。その結果、サーバーはユーザーに同じメッセージをスパム送信します。
私が思いついた解決策は次のとおりです。
- Webhook から更新を受け取る
- を助けて
update_id
- ユーザーに返信する
/sendMessage
- WebHook を無効にする
/setWebhook?url=
- オフセットを設定する
/getUpdates?offset={update_id+1}
- webHook を元に戻す
/setWebhook?url=https://mywebhook.domain.com
もっと良い方法があるはずですよね?誰?
api - Telegram ボットに送信されたファイルまたは写真をダウンロードするにはどうすればよいですか?
テレグラム ボット API を使用していますが、ボットに送信されたファイルをダウンロードする方法がわかりません。ファイルのハッシュを取得しましたが、それをどうするかわかりません。何か方法はありますか?ありがとう。
php - PHP のテレグラム ボット カスタム キーボード
カスタム キーボードを使用して、PHP でテレグラム ボットを作成しようとしています。メッセージは配信されますが、カスタム キーボードが機能しません。$keyb = array('keyboard' => array(array("A", "B"))); また、成功しません。
sendMessageメソッドは、オブジェクトのReplyKeyboardMarkupを参照します。ReplyKeyboardMarkup の配列を作成しても機能しません。json_encode($keyb) も試みましたが、それも解決策ではありません。
GitHub で例を検索しましたが、カスタム キーボードが使用されている例は見つかりませんでした。Telegram は最新の iPhone とデスクトップで動作します。
サンプルコード: