カールを使用して公開チャンネルを更新します。この種類の構文:
>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は何ですか?
私はプライベートチャンネルで書く方法を見つけました。
ボットAPIを介してこのチャネルにメッセージを送信します
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=12
応答として、チャンネルのchat_idで情報を取得します。
{"ok":true、 "result":{"chat":{ "id":-1001005582487、 "title": "プライベートチャネルをテスト"、" type ":" channel "}、" date ":1448245538、" message_id ":7、" text ":" 123ds "}}
(チャンネルのリンクを削除することで)チャンネルをプライベートに戻し、このchat_id "-1001005582487"にメッセージを直接送信できます。
https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=12
少なくとも5つのパブリックグループ/チャンネルが存在するユーザーは、チャンネルをパブリックにすることができないため、問題は解決しません。はい、それらのいずれかを取り消すことができますが、現時点では、チャットIDを他の方法で取得することはできません。
その場合の解決策を誰かが見つけましたか?
update
私はクレイジーな解決策を見つけました:
そのため、チャンネルIDは「-1001055587116」になります。魔法が起こる:)
ここにある解決策: https://github.com/GabrielRF/telegram-id#web-channel-id
最も簡単な方法は、チャットで@get_id_botを招待し、次のように入力することです。
/my_id@get_id_bot
チャット内
これもできます:
ステップ1)プライベートチャンネルをパブリックチャンネルに変換する
手順2)このチャネルのChannelNameを設定します
ステップ3)その後、このチャンネルをプライベートに変更できます
ステップ4)次に、ステップ3で設定した@ChannelNameを使用してメッセージを送信します
注:ステップ1では、パブリックチャネルの1つをプライベートに短時間変更できます。
チャンネルをパブリックに変換してからプライベートにする必要はありません。
プライベートチャンネルのIDを見つけます。 (これを行う方法は多数あります。たとえば、 this SO answer を参照してください)
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になります。
全部できた!
プライベートチャンネルのIDはXXXXXX部分です(「p = c」とアンダースコアの間)。使用するには、その前に「-100」を追加します。そのため、「XXXXXX」が「4785444554」の場合、プライベートチャネルIDは「-1004785444554」です。
私が行うオプションは、Androidで人気のあるPlus Messengerを使用することです。 Playストアのリンク: https://play.google.com/store/apps/details?id=org.telegram.plus&hl=en
チャンネルをクリックすると、グループ名の下のチャンネル情報にチャンネルIDが表示されます。
スーパーグループおよびチャネルIDは、プラスメッセンジャーの1068773197のようになります。 APIで使用する場合は、-100のプレフィックスを付けると-1001068773197になります。
プライベートチャンネルを開き、次の操作を行います。
onwebクライアント:
if
たとえば https://web.telegram.org/#/im?p=c1192292378_267431176311092398then
1192292378はチャネルIDですonmobileおよびdesktop:
if
たとえば https://t.me/c/1192292378/31then
1192292378はチャンネルIDです(ボーナス:31はメッセージIDです)onPlus MessengerAndroidの場合 :
WARNING
Telegram Bot APIを使用する場合は、必ず-100プレフィックスを追加してください:
if
チャネルIDは、たとえば1192292378ですthen
を使用する必要があります-1001192292378