如何获取私人电报频道的chattelegram-电报telegram技巧分享

获取电报频道所有内容

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

1

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是什么?

  • 为什么需要频道chat_id? 通道的全部发送方法都使用字符串” @channel_name”
  • 嗨,@pengrad与curl下令,我问我的机器人向MyChannel发送消息。 对于公共频道,chat_id即是其URL的最后一部分:在telegram.me/MyChannel中,chat_id为” MyChannel”。 私家频道只有约请网址,比方telegram.me/joinchat/AJhkwTviqL_7HWcGZgottQ,而chat_id不是” AJhkwTviqL_7HWcGZgottQ”。 因此,我正在寻找私家频道的chat_id。
  • 有没有措施不用电报就可以打自由出租车吗?

我找到了在私家渠道写作的方法。

  • 您应该使用一些@channelName将其转换为public
  • 通过Bot API向此频道发送消息

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

  • 作为相应,您将得到有关您频道的chat_id的信息。

    {

    ” ok”:是的,

    “结果”:{

    “聊天”:{

    ” id”:-1001005582487,

    ” title”:”测试专用频道”,

    ” type”:”频道”

    },

    “日期”:1448245538,

    ” message_id”:7

    ” text”:” 123ds”

    }

    }

  • 如今,您可以将频道转换回私家状态(通过删除频道的链接),然后直接将消息发送到此chat_id” -1001005582487″

    https://api.telegram.org/bot111:222/sendMessage?chat_id=-1001005582487&text=123

    • 我对你的问题投了同意票,谢谢你的具体信息!我很狐疑在这里投票给您答案,由于这更像是一种黑客行为:-)。趁便说一句,我的一样平常问题是:私家频道需要什么?大概组(近来的超组)是更好的方法?在facs中,电报文档尚不清晰私家渠道。
    • 我实验了一下,它只工作了几分钟。我想是由于一旦频道变为私有频道,就会有一个仍旧可以公开访问的时间范畴:今后,假如您实验将其重新设置为公共频道,则必须重新定义频道ID。
    • 您应该澄清一下,我们需要在第一个斜杠旁边的bot旁边提交我们的api令牌。横竖谢谢!这是一个很好的解决方案。

    存在至少5个公共组/频道的用户无法将频道设为公开,因此…问题未解决。是的,您可以撤消此中之一,但是现在,我们无法以其他方法检索聊天ID。

    revoke

    有没有人找到解决方案?

    更新

    我发现了猖獗的解决方案:

  • 使用电报的Web版本登录您的帐户:https://web.telegram.org
  • 查找您的频道。察看您的网址,它应该类似于https://web.telegram.org/#/im?p=c1055587116_11052224402541910257
  • 从中抓取” 1055587116″,并添加” -100″作为前缀。
  • 因此…您的频道ID为” -1001055587116″。把戏发生了:)

    在这里找到解决方案:https://github.com/GabrielRF/telegram-id#web-channel-id

    • 甚至我的新频道也将private / public / private设置为

      @channel_username

      ,但是

      @channel_username

      在其私有状态下对我不起作用! Ive使用了您公布的解决方案,并进行了工作

    • 老师,您是生活的观赏家!
    • 我以为这个

      -100

      前缀不会永久有用,但是4年后它仍旧有用!

    • @AliTou Pavel Durov方才找到了此评述,并决定不删除功能,啊哈:)很兴奋听到,它仍旧有用:)

    最简单的方法是在聊天中约请@get_id_bot,然后键入:

    聊天中

    • 谢谢,最好的答案!
    • 根据我的测试,应该在频道中将bot添加为管理员。
    • 是的,好像必须添加为管理员
    • 这仍旧是当前的吗? / my_id @ …好像什么也没做(除了出现该消息外)
    • @wal我通过2种方法

      start @get_id_bot

      得到了ID,而且

      my_id @get_id_bot

      空间好像很重要。将

      @get_id_bot

      添加为成员,并仅以管理员身份授予职位。一旦得到ID,为了安全起见,请将其删除。


    打开私家频道,然后:

    WARNING

    在使用Telegram Bot API时,请确保添加-100前缀:

    • if

      通道ID比方为1192292378

    • then

      ,您应该使用-1001192292378


    您可以这样做:

    第1步)将您的私家频道转换为公共频道

    第2步)为此频道设置ChannelName

    步骤3)然后,您可以将此频道变动为”私家”

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

    留意:对于第1步,您可以在短时间内将一个公共频道变动为私家频道。


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

    找到您的私家频道的ID。 (有许多方法可以

    做到这一点,比方,看到这样的答案)

  • curl -X POST” https://api.telegram.org/botxxxxxx:yyyyyyyyyy/sendMessage” -d

    ” chat_id = -100CHAT_ID&text =我的示例文本”

    将xxxxxx:yyyyyyyyyy更换为您的漫游器ID,并将CHAT_ID更换为在步骤1中找到的通道ID。因此,假如通道ID为1234,则它将为chat_id = -1001234。

  • 全做完了!


    如今,您可以向bot @username_to_id_bot编写约请链接,您将得到ID:

    例:

    enter image description here

    也实用于公共聊天,频道甚至用户


    • 在https://web.telegram.org上打开Telegram Web
    • 搜索您的私家频道
    • 察看URL。就像是:

      https://web.telegram.org/#/im?p=cXXXXXXXXXX_578236787445474833

    您的私家频道的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=zh-CN

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

    超级群组和频道ID在加上Messenger时看起来像1068773197。对于您在API上的用法,您可以在-100前面加上前缀-1001068773197。


    需要答案:

    您应该添加BOT并使其成为PRIVATE通道的管理员,不然会出现

    chat not found

    错误。



    要获取用户列表,您需要使用电报API。


    Telegram API相当庞杂。


    有些客户可以更快地完成工作。


    对于python,有 Telethon ,获取频道用户的代码是:


    from telethon import TelegramClient from telethon.tl.functions.contacts import ResolveUsernameRequest from telethon.tl.functions.channels import GetAdminLogRequest from telethon.tl.types import InputChannel from telethon.tl.types import ChannelAdminLogEventsFilter from telethon.tl.types import InputUserSelf from telethon.tl.types import InputUser # These example values won't work. You must get your own api_id and # api_hash from https://my.telegram.org, under API Development. api_id = ****** # Your api_id api_hash = '********************************' # Yo!ur api_hash phone_number = '+989122594574' # Your phone number client = TelegramClient(phone_number, api_id, api_hash) client.session.report_errors = False client.connect() if not client.is_user_authorized(): client.send_code_request(phone_number) client.sign_in(phone_number, input('Enter the code: ')) channel = client(ResolveUsernameRequest('tabe_eshgh')) # Your channel username user = client(ResolveUsernameRequest('amir2b')) # Your channel admin username admins = [InputUserSelf(), InputUser(user.users[0].id, user.users[0].access_hash)] # admins admins = [] # No need admins for join and leave and invite filters filter = None # All events # param: (join, leave, invite, ban, unban, kick, unkick, promote, demote, info, settings, pinned, edit, delete) filter = ChannelAdminLogEventsFilter(True, True, True, False, F!alse, False, False, False, False, False, False, False, False, False) result = client(GetAdminLogRequest(InputChannel(channel.chats[0].id, channel.chats[0].access_hash), '', 0, 0, 10, filter, admins)) ##print(result) for _user in result.users: ##print(_user.id) with open(''.join(['users/', str(_user.id)]), 'w') as f: f.write(str(_user.id))

    您可以使用:


    updates.getChannelDifference#bb32d7c0 channel:InputChannel filter:ChannelMessagesFilter pts:int limit:int = updates.ChannelDifference;

    它将返回此中一个:


    updates.channelDifferenceEmpty#3e11affb flags:# final:flags.0?true pts:int timeout:flags.1?int = updates.ChannelDifference; updates.channelDifferenceTooLong#5e167646 flags:# final:flags.0?true pts:int timeout:flags.1?int top_message:int top_important_message:int read_inbox_max_id:int unread_count:int unread_important_count:int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference; updates.channelDifference#2064674e flags:# final:flags.0?true pts:int timeout:flags.1?int new_messages:Vector<Message> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference;

    在您的电报实行中,定期公布

    updates.getChannelDifference

    以提取(和缓存)您的新频道消息。


    updates.channelDifferenceEmpty

    返回,表现您已看到频道上的最新消息。

    然后,您可以

    流式传输

    新消息到您的网站

    panel / widget

    本文网址:

    http://www.1cm8858.com/d/202113173148_6111_4209998375/home

    Ten articles before and after

    使用ifttt+telegram转发未接电话和未读短信通知如何安卓备机的到另一台手机?-电报telegram技巧分享

    教宝宝说话前今日微课-电报telegram技巧分享

    老年手机来电报号怎么设置机报号码关闭-电报telegram技巧分享

    大蒜炝锅致癌?中山市发展和改革局-电报telegram技巧分享

    六年磨一剑万州这一片将新建两所学校-电报telegram技巧分享

    【改革开放40年】从“见字如面”到“万物互联”第1206篇•电报-电报telegram技巧分享

    1992年电报出口量最高峰408万份最多可以发多少字?-电报telegram技巧分享

    [免费]Telegram被破解-电报telegram技巧分享

    telegram收费吗?将会从2021年开始增加付费功能-电报telegram技巧分享

    上海1家营业厅仍可发电报电报-电报telegram技巧分享