web-dev-qa-db-ja.com

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

カールを使用して公開チャンネルを更新します。この種類の構文:

>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は何ですか?

59
aborruso

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

  1. @channelNameを使用してパブリックに変換する必要があります
  2. ボットAPIを介してこのチャネルにメッセージを送信します

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

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

    {"ok":true、 "result":{"chat":{ "id":-1001005582487、 "title": "プライベートチャネルをテスト"、" type ":" channel "}、" date ":1448245538、" message_id ":7、" text ":" 123ds "}}

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

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

123
Stas Parshin

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

revoke

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

update

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

  1. telegramのWebバージョンでアカウントにログインします。 https://web.telegram.org
  2. チャンネルを見つけます。あなたのURLを参照してください、 https://web.telegram.org/#/im?p=c1055587116_ 11052224402541910257
  3. それから「1055587116」を取得し、「-100」をプレフィックスとして追加します。

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

ここにある解決策: https://github.com/GabrielRF/telegram-id#web-channel-id

71
Nigrimmist

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

/my_id@get_id_bot

チャット内

18
Jurgo Boemo

これもできます:

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

手順2)このチャネルのChannelNameを設定します

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

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

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

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

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

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

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

全部できた!

2
apadana

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

1
Peter

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

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

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

0
Habeeb

プライベートチャンネルを開き、次の操作を行います。

  • onwebクライアント:

  • onmobileおよびdesktop

    • チャンネルのanyメッセージのlinkをコピーします。
    • ifたとえば https://t.me/c/1192292378/31
    • then1192292378はチャンネルIDです(ボーナス:31はメッセージIDです)
  • onPlus MessengerAndroidの場合

    • チャンネルのinfosを開きます:
    • チャンネルIDは、名前の下にaboveが表示されます

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

  • ifチャネルIDは、たとえば1192292378です
  • thenを使用する必要があります-1001192292378
0
Fabio Michelini