@master_clown

Telegram API (Client): Как получить ID чата/канала по ссылке-приглашению или титлу?

Делаю клиент на Telegram API (не ботовский, а на MTProto). Сейчас реализую функционал с чатами/каналами, но непонятно, как получить ID группы и информацию о ней чтобы добавиться в неё. Ведь в браузере при переходе по ссылке-приглашению приложение открывается и получает информацию о группе, значит, такое реализовано как-то. А без ID сообщений канала, например, не получишь. Ну или по названию группы: нельзя ли эту информацию использовать?

Спасибо заранее
  • Вопрос задан
  • 6737 просмотров
Пригласить эксперта
Ответы на вопрос 3
@master_clown Автор вопроса
Отлично, я нашёл решение.

Пример пригласительной ссылки: https://t.me/joinchat/some_chat. Для удобства TL-типы буду описывать как TL{TypeName}. "TypeName" взят из данной схемы.

1. Сперва нужно послать messages.checkChatInvite с параметром hash равным последней части ссылки (some_chat в данном случае).

2. Приходит ответ с типом TLChatInvite. В нём будет первичная информация о группе: её вид (чат или канал?), кол-во участников и, возможно, они сами в виде вектора TLUser.

[Вот здесь я был в тупике]
3. Вызываем метод messages.importChatInvite с тем же параметром hash. В ответ приходит объект типа TLUpdates или TLUpdatesCombined. Оба будут содержать вектор чатов. Взять можно первый элемент вектора (проверив на пустоту, естественно). Собственно, это и есть результат: в объекте будет и ID, и прочее.

Зачем делать три шага вместо лишь последнего? Нужно тип чата определить для каста результата к корректному типу.

Признаться, разочарован, что так долго заняло времени на выяснение этой ерунды.

UPD: messages.importChatInvite добавит пользователя в группу при вызове. Ну ёлки-палки.
Ответ написан
Winsik
@Winsik
сис.админ, недопрограммист :)
пригласите "себя" в нужную группу

ещё, как вариант, подсмотрите id группы через тот же plus messager
Ответ написан
@Hochu_pisat
Помогите с решением, тоже столкнулся с этой проблемой, когда не хочу чтобы добавляли бота в чат, а просто отправляли ссылку и он видел всю инфу о чате.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы