プライベートテレグラムチャネルのchat_idを取得する方法


90

curlを使用して公開チャネルを更新しています。この種の構文:

curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"

しかしchat_id、プライベートチャンネルとは何でしょうか。それはあなたがプライベート招待に持っているものではありません。

これは、すべてのメソッドで(およびforwardMessageのfrom_chat_idの代わりに)chat_idの代わりにチャネルのユーザー名(@channelusernameの形式)を渡すことができるためです。しかし、私が管理するプライベートチャネルの@channelusernameは何ですか?


なぜチャンネルのchat_idが必要なのですか?チャネルへのすべての送信メソッドは文字列「@channel_name」を使用します
Stas Parshin

こんにちは、@ pengrad with curlコマンド私のボットにMyChannelにメッセージを送信するよう依頼します。公共チャンネルについてchat_idは、そのURLの最後の部分に等しい:でtelegram.me/MyChannel、chat_idは「MyChannel」です。プライベートチャンネルが唯一のようなURLを招待しているtelegram.me/joinchat/AJhkwTviqL_7HWcGZgottQとchat_idは「AJhkwTviqL_7HWcGZgottQ」ではありません。このため、プライベートチャネルのchat_idを探しています。
aborruso

電報なしでリブレタクシーを走らせる方法はありますか?
Shahid Karimi

回答:


177

私はプライベートチャンネルで書く方法を見つけました。

  1. あなたはいくつかの@channelNameでそれをパブリックに変換する必要があります
  2. Bot APIを介してこのチャネルにメッセージを送信します

    https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123

  3. 応答として、チャンネルのchat_idで情報を取得します。

    {"ok":true、 "result":{"chat":{ "id":-1001005582487、 "title": "Test Private Channel"、 "type": "channel"}、 "date":1448245538、 " message_id ":7、" text ":" 123ds "}}

  4. (チャネルのリンクを削除することにより)チャネルをプライベートに戻し、メッセージをこのchat_id "-1001005582487"に直接送信できます。

    https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123


1
私はあなたの質問に投票しました、そして私は詳細をありがとう!もっとハッキングなので、私はここであなたの答えに投票することに困惑しています:-)。ところで、私の一般的な質問は次のとおりです。プライベートチャネルの必要性は何ですか。たぶんグループ(最近のスーパーグループ)がより良い方法でしょうか?ファックスでは、テレグラムのドキュメントはプライベートチャネルについて不明確です。
Giorgio Robino、2015

1
私はこれを試してみましたが、数分しか機能しませんでした。チャネルがプライベートになると、まだパブリックに到達できる時間枠があるためだと思います。その後、チャネルを再度パブリックとして設定しようとすると、チャネルIDを再定義する必要があります。
roibeart

1
最初のスラッシュでボットの横にAPIトークンを送信する必要があることを明確にする必要があります。とにかくありがとう!それはきちんとした解決策でした。
フランコマルドナド

106

5つ以上のパブリックグループ/チャネルが存在するユーザーは、チャネルをパブリックにすることができないため、問題は解決されませんでした。はい、そのうちの1つを取り消すことができますが、現時点では、他の方法でチャットIDを取得することはできません。

取り消す

誰かがその場合の解決策を見つけましたか?

更新

私はクレイジーな解決策を見つけました:

  1. TelegramのWebバージョンのアカウントでログイン:https : //web.telegram.org
  2. チャンネルを見つけます。あなたのURLを見てください、それはhttps://web.telegram.org/#/im?p=c 1055587116 _11052224402541910257のようなものでなければなりません
  3. それから「1055587116」を取得し、接頭辞として「-100」を追加します。

つまり、チャネルIDは「-1001055587116」になります。魔法が起こる:)

解決策はここにあります:https : //github.com/GabrielRF/telegram-id#web-channel-id


1
私の新しいチャンネルでさえ、プライベート/パブリック/プライベートをset @channel_usernameに切り替えましたが、それ@channel_usernameはプライベートですが、私にとってはうまくいきません!私はあなたの投稿されたソリューションを使用して、働きました
MohaMad '18

あなたはサー、人生の味です!
ジャガーノート

1
この-100プレフィックスが永久に機能するとは思いませんが、4年経っても機能します。
Ali Tou

1
@AliTou Pavel Durovがこのコメントを見つけたので、FEATUREを削除しないことにしました、ああ:)それでも機能することを聞いてうれしいです:)
Nigrimmist

31

最も簡単な方法は、@ get_id_botをチャットに招待して、次のように入力することです。

/my_id @get_id_bot

チャットの中


3
ベストアンサー、ありがとうございます!
realmag777

1
私のテストによると、ボットは管理者としてチャネルに追加する必要があります。
Morteza Ziyae 2017

はい、管理者として追加する必要があるようです
Stefan Reich

3
これはまだ最新ですか?/ my_id @ ...は何もしないようです(そのメッセージが表示されることを除いて)
wal

@wal 2つの方法でIDを取得し、スペース/start @get_id_bot/my_id @get_id_bot重要なようです。@get_id_botメンバーとして追加し、管理者として投稿権限のみを付与します。IDを取得したら、安全のために取り外してください。
rahoolm

21

プライベートチャネルを開いてから、

  • のWebクライアント:

  • 上のモバイルおよびデスクトップ

    • コピーリンクいずれかをチャンネルのメッセージを:
    • ifたとえば、https://t.me/c/1192292378/31
    • then 1192292378はチャンネルIDです(ボーナス: 31はメッセージIDです)
  • 上のプラスメッセンジャー Android用

    • チャンネルの情報を開きます:
    • チャンネルIDは、その名前のすぐに表示されます

WARNING 必ず Telegram Bot APIを使用する場合は、-100プレフィックスを追加してください。

  • if チャネルIDは、たとえば1192292378です。
  • then-1001192292378を使用してください

1
これは、チャンネルIDを取得する最も簡単で正しい方法です。
Tonni

4

あなたもこれを行うことができます:

ステップ1)プライベートチャンネルをパブリックチャンネルに変換する

ステップ2)このチャネルのChannelNameを設定します

ステップ3)次に、このチャネルをプライベートに変更できます

ステップ4)次に、ステップ3で設定した@ChannelNameを使用してメッセージを送信します

注:ステップ1では、パブリックチャネルの1つを少しの間プライベートに変更できます。


3

チャネルをパブリックに変換してからプライベートにする必要はありません。

  1. プライベートチャンネルのIDを見つけます。(これを行う方法は多数あります。たとえば、このSOの回答を参照してください)

  2. curl -X POST " https://api.telegram.org/botxxxxxx:yyyyyyyyyyy/sendMessage " -d "chat_id = -100 CHAT_ID&text = my sample text"

    xxxxxx:yyyyyyyyyyyyをボットIDに置き換え、CHAT_IDをステップ1で見つかったチャネルIDに置き換えます。したがって、チャネルIDが1234の場合、chat_id = -1001234になります。

すべて完了!


1

プライベートチャンネルのIDはXXXXXXの部分です(「p = c」とアンダースコアの間)。使用するには、その前に「-100」を追加します。したがって、「XXXXXX」が「4785444554」の場合、プライベートチャネルID IDは「-1004785444554」です。


1

とりあえず、bot @username_to_id_botへの招待リンクを書いて、IDを取得します。

例: ここに画像の説明を入力してください

パブリックチャット、チャンネル、さらにはユーザーでも動作します


0

私が行うオプションは、Androidで人気のあるPlus Messengerを使用することです。Playストアのリンクは次のとおりです。 https //play.google.com/store/apps/details?id=org.telegram.plus&hl=en

チャンネルをクリックすると、グループ名の下のチャンネル情報にチャンネルIDが表示されます。

スーパーグループとチャネルIDは、プラスメッセンジャーでは1068773197のようになります。APIで使用する場合は、-100のプレフィックスを付けることができます。これにより、-1001068773197になります。


-1

必要な答え:

BOT をPRIVATEチャネルの管理者として追加して作成する必要があります。それ以外の場合chat not foundがあります。エラーが発生します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.