私はテレポットを使用していますpythonライブラリ、誰かのUserIDがあればメッセージを送信できることを知っています(これは数字です)。誰かにメッセージを送信できるかどうかを知りたいユーザーIDを持たず、ユーザー名(「@」で始まるもの)のみで、ユーザー名をユーザーIDに変換する方法がある場合.
@username
の形式のユーザー名を使用してユーザーにメッセージを送信することはできません。ボットが管理者であるチャンネルユーザー名にメッセージを送信するだけです。 TelegramボットAPIは、メッセージの送信にchat_id
識別子を使用します。ユーザーのchat_id
を達成したい場合は、 telegram-cli を使用できますが、そのプロジェクトは中止されているため、自分でデバッグする必要があるため、まったく簡単ではありません。あなたの場合、次のコマンドを実行する必要があります。
> resolve_username vahid_mas
出力は次のようになります。
{"user": {"username": "Vahid_Mas", "id": "$010000006459670b02c0c7fd66d44708", "last_name": "", "peer_type": "user", "print_name": "Vahid", "flags": 720897, "peer_id": 191322468, "first_name": "Vahid", "phone": "xxxxxxx"}, "online": false, "event": "online-status", "state": -1, "when": "2017-01-22 17:43:16"}
ボットで既に/ startを使用しているユーザーにのみメッセージを送信できます。ボットを起動すると、/ start withで送信したメッセージから直接update.message.from.user_idを見つけることができ、同じ方法でupdate.message.from.usernameを見つけることができます。 「@Username」にメッセージを送信するには、ボットを起動し、user_idでユーザー名を保存する必要があります。次に、ユーザー名を入力して、メッセージを送信するたびに正しいuser_idを見つけます。
https://api.telegram.org/bot<Bot_token>/getUpdates
ページ。Telegram Bot API documentation によると、@channelusername
。
[〜#〜] update [〜#〜]
これを達成する可能性はありません。 Telegram Bot API変更ログで このメモ を見つけました:
これが機能するには、ボットがチャンネルの管理者である必要があります