Telegram bot 如何获取专用电报频道的聊天室id?

Telegram bot 如何获取专用电报频道的聊天室id?,telegram-bot,Telegram Bot,我使用curl更新我的公共频道。这种语法: curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text" 但是私人频道的聊天id是什么?这不是你私人邀请函里的那个 因为现在我们可以在所有方法中传递频道用户名(格式为@channelusername)代替chat\u id(而不

我使用curl更新我的公共频道。这种语法:

curl -X POST "https://api.telegram.org/bot144377327:AAGqdElkZ-77zsPRoAXXXXXXXXXX/sendMessage" -d "chat_id=@MyChannel&text=my sample text"
但是私人频道的聊天id是什么?这不是你私人邀请函里的那个


因为现在我们可以在所有方法中传递频道用户名(格式为@channelusername)代替chat\u id(而不是forwardMessage中的from\u chat\u id)。但是我管理的私人频道的@channelusername是什么?

我找到了在私人频道中写作的方法

  • 您应该使用@channelName将其转换为public

  • 通过Bot API将消息发送到此通道

  • 作为回应,您将获得带有频道聊天id的信息

    {
    “ok”:没错,
    “结果”:{
    “聊天”:{
    **“id”:-1005582487**
    “标题”:“测试专用通道”,
    “类型”:“通道”
    },
    “日期”:1448245538,
    “消息id”:7,
    “文本”:“123ds”
    }
    }
    
  • 现在,您可以将频道转换回私人频道(通过删除频道链接),并直接向该聊天室发送消息-“1001005582487”

  • 您也可以这样做:

    步骤1)将您的私人频道转换为公共频道

    步骤2)设置此频道的频道名称

    步骤3)然后您可以将此频道更改为专用频道

    步骤4)现在使用步骤3中设置的@ChannelName发送消息

    注意:对于步骤1,您可以在短时间内将一个公共频道更改为私人频道。

    更新#2

    找到另一个最简单的方法: 只需将您的邀请链接发送到
    @username\u to\u id\u bot
    ()bot到您的私人频道,它将返回其id。最简单级别:最大值!:)

    另外,我不是这个机器人的所有者

    ps2。Bot将不会加入您的组,但为了安全起见,如果在使用Bot后对您有影响,只需撤销旧的邀请链接即可

    原职:

    至少存在5个公共组/频道的用户无法公开频道,因此…问题未得到解决。是的,您可以撤销其中一个,但目前,我们无法通过其他方式检索聊天id

    有人找到那个案子的解决办法了吗

    更新

    我找到了疯狂的解决方案:

  • 在Telegram的web版本中以您的帐户登录:
  • 找到你的频道。看看你的url,它应该是
  • 从中抓取“1055587116”,并添加“-100”作为前缀
  • 所以。。。您的频道id将为“-1001055587116”。奇迹发生了:)


    解决方案如下:

    最简单的方法是在聊天中邀请@get\u id\u bot,然后键入:

    /my_id @get_id_bot
    

    在聊天室中

    无需将频道转换为公共频道,然后将其设置为私人频道

  • 查找您的私人频道的id。(有很多方法可以 执行此操作,例如,请参见)

  • 卷曲-X柱“--d” “聊天室id=-100聊天室id&text=我的示例文本”

    将xxxxxx:yyyyyyyyyyy替换为您的机器人id,并将CHAT_id替换为步骤1中找到的频道id。所以,如果频道id是1234,那么它将是chat_id=-1001234


  • 全部完成

    我的选择是在Android上使用流行的Plus Messenger。play store链接是:

    您可以单击频道,在组名称下方的频道信息中,您可以找到频道Id

    超级组和通道ID在plus messenger上看起来像1068773197。对于您在API上的使用,您可以将前缀-100设置为-1001068773197。

    • 打开电报网
    • 搜索你的私人频道
    • 看看网址。就像:
    私人频道的id是XXXXXX部分(在“p=c”和下划线之间)。
    要使用它,只需在它前面加上“-100”。因此,如果“XXXXXX”是“4785444554”您的专用频道id“-1004785444554”。

    打开专用频道,然后:

    • 网站上客户端:

      • 查看浏览器中的URL
      • if
        例如
      • 然后
        1192292378是频道ID
    • 在移动设备和桌面设备上:

      • 复制频道任何消息的链接
      • if
        例如
      • 然后
        1192292378是频道ID(额外奖励:31是消息ID)
    • Plus Messenger上

      • 打开频道的信息
      • 频道ID显示在其名称下方的上方

    警告
    使用电报机器人API时,请确保添加-100前缀

    • 如果
      频道ID是例如1192292378
    • 然后
      您应该使用-1001192292378
    需要的答案:
    您应该添加并使您的BOT成为专用频道的管理员,否则会发生
    聊天未找到
    错误。

    现在您可以将邀请链接写入BOT@username\u to\u id\u BOT,您将获得id:

    例如:


    还与公共聊天室、频道甚至用户合作

    找到了python的TelegramBotApi解决方案。 也许会为其他语言工作

    我只需将我的机器人添加到专用频道,然后执行以下操作:

    @your_bot_name hi
    
    在控制台中,我得到了我需要的所有信息的响应。

    我使用并通过以下方式获得ID:

  • 将机器人添加到频道
  • 运行机器人
  • 在频道中写入内容(例如:
    /authenticate
    foo
  • 电报机:
    private静态异步任务Main()
    {
    var botClient=新的botClient(“密钥”);
    botClient.OnUpdate+=botclientonupdate;
    Console.ReadKey();
    }
    私有静态异步void botclientonupdate(对象?发送方,UpdateEventArgs e)
    {
    var id=e.Update.ChannelPost.Chat.id;
    等待客户
    
    https://api.telegram.org/bot<BOT_TOKEN>/getUpdates