web-dev-qa-db-ja.com

正しい電報チャネルIDを取得するにはどうすればよいですか?

  • _user_id_を_contacts.resolveUsername#bf0131c_で取得し、文字列channelで検索すると、_user_id = 0x0827ac18_が取得されます

それを_messages.getFullChat#3b831c66_に送信すると、エラー_PEER_ID_INVALID_を受け取ります。

_users.getFullUser#ca30a5b1_に送信すると、エラー_USER_ID_INVALID_が発生します。

  • _contacts.search#11f812d8_を使用して文字列channelを検索すると、ユーザー名ChannelBotと_Channel_Bot_の2人のユーザーが取得されますが、ユーザー名またはチャネル名channelは取得されません。

  1. _messages.getFullChat#3b831c66_で使用するためのチャネルIDを取得するにはどうすればよいですか?
  2. 名前で_chat_id_を取得するにはどうすればよいですか?
11
SkyN

チャンネルからこのボットにメッセージを転送するだけです:( https://telegram.me/getidsbot

12

プライベートチャンネルのchat_idを取得する方法:

公開し、@ ChannelNameにボットAPIまたはcURLを介してこのチャネルへの送信メッセージを送信します

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

チャンネルIDを返します!

{ "ok" : true, "result" : { "chat" : { "id" : -?????????, "title" : "Test Private Channel", "type" : "channel" }, "date" : X, "message_id" : 7, "text" : "XXXXXX" } }

これで、チャネルをプライベートに変換して、chat_idを使用できます。

9
njha

Telegram APIはこれを直接サポートします。 https://core.telegram.org/bots/api#available-methods 。メソッドgetChatを見てください

  1. チャンネルを公開チャンネルに変換し、'TestChannel123_temp'のような一時的に覚えやすい名前を作成します
  2. 次のコマンドレットを実行します(Powershell)

    PS C:\Users\Me> Invoke-RestMethod -Method Get -Uri "https://api.telegram.org/botTOKEN_HERE/getChat?chat_id=@publicId"
    
      ok result
      -- ------
    True @{id=-YOUR_CHAT_ID; title=YOUR_CHAT_TITLE; username=YOUR_CHAT_USERNAME; type=supergroup; photo=}
    
    
    PS C:\Users\Me>
    
  3. グループを非公開に戻します。

  4. 既知のチャットIDを介してメッセージを送信します。

0
user3613410