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
は取得されません。messages.getFullChat#3b831c66
_で使用するためのチャネルIDを取得するにはどうすればよいですか?chat_id
_を取得するにはどうすればよいですか?チャンネルからこのボットにメッセージを転送するだけです:( https://telegram.me/getidsbot )
プライベートチャンネルの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を使用できます。
Telegram APIはこれを直接サポートします。 https://core.telegram.org/bots/api#available-methods 。メソッドgetChat
を見てください
'TestChannel123_temp'
のような一時的に覚えやすい名前を作成します次のコマンドレットを実行します(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>
グループを非公開に戻します。
既知のチャットIDを介してメッセージを送信します。