I use curl to update my public channels. This kind of syntax:
curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
But what's the chat_id
of a private channel? It's not the one you have in the private invite.
Because now we can pass a channel username (in the format @channelusername) in the place of chat_id in all methods (and instead of from_chat_id in forwardMessage). But what's the @channelusername of a private channel that I administer?
I found the way to write in private channels.
Send message to this channel through Bot API
https://api.telegram.org/bot111:222/sendMessage?chat_id=@channelName&text=123
As response you will get info with chat_id of your channel.
{ "ok" : true, "result" : { "chat" : { "id" : -1001005582487, "title" : "Test Private Channel", "type" : "channel" }, "date" : 1448245538, "message_id" : 7, "text" : "123ds" } }
Now you can convert Channel back to private (by deleting channel's link) and send message directly to this chat_id "-1001005582487"
https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123