1 место Разбираем User - API Telegram по косточкам

simbioz

Client
Регистрация
31.08.2014
Сообщения
147
Благодарностей
27
Баллы
28
а путь какой проверяли? Он есть?
Да я создал путь для папки куда сохранился автоматом номер телефона с расширением .dat, теперь пишет :

Problem when trying to connect to [2001:b28:f23f:f005::a]:443; either there's no internet connection or the IP address version is not compatible (if the latter, consider using DataCenterIPVersion enum)
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 508
Благодарностей
1 759
Баллы
113
Да я создал путь для папки куда сохранился автоматом номер телефона с расширением .dat, теперь пишет :

Problem when trying to connect to [2001:b28:f23f:f005::a]:443; either there's no internet connection or the IP address version is not compatible (if the latter, consider using DataCenterIPVersion enum)
А переводить текст ошибки на русский пробовали? понятнее станет.
 

delyx

Client
Регистрация
19.12.2018
Сообщения
7
Благодарностей
0
Баллы
1
Можно ли с помошью этого метода создавать каналы и добавлять в них описание и фото ?
 

Starina

Client
Регистрация
01.01.2020
Сообщения
4
Благодарностей
3
Баллы
3
данные авторизации сохраняется в файл
как правило разлогина из сессии не происходит,
все зависит как с ней работаешь
Добрый день !

Уважаемый автор подскажите пожалуйста по какой причине возникает данная ошибка при попытке отметки сообщений как прочитанные

PEER_ID_INVALID



C#:
try

{

    var client = project.Context["client"];



    // Запрос на получение диалогов

    var requestDialog = new TeleSharp.TL.Messages.TLRequestGetDialogs()

    {

        OffsetDate = 0,

        OffsetId = 0,

        OffsetPeer = new TeleSharp.TL.TLInputPeerSelf(),

        Limit = 100,

        Hash = 0

    };



    // Отправка запроса на получение диалогов

    var responseDialog = client.SendRequest<TeleSharp.TL.Messages.TLAbsDialogs>(requestDialog);



    if (responseDialog is TeleSharp.TL.Messages.TLDialogs dialogs)

    {

        // Перебор каждого диалога

        foreach (var dialog in dialogs.Dialogs)

        {

            if (dialog is TeleSharp.TL.TLDialog dialogItem)

            {

                // Проверка, является ли диалог диалогом с пользователем

                if (dialogItem.Peer is TeleSharp.TL.TLPeerUser userPeer)

                {

              



                    var userId = userPeer.UserId;

                    var unreadCount = dialogItem.UnreadCount;



                    if (unreadCount > 0)

                    {

                        // Отметка непрочитанных сообщений как прочитанных

                        var requestRead = new TeleSharp.TL.Messages.TLRequestReadHistory()

                        {

                            Peer = new TeleSharp.TL.TLInputPeerUser() { UserId = userId },

                            MaxId = 0

                        };



                        // Отправка запроса на отметку сообщений как прочитанных

                        var responseRead = client.SendRequest<TeleSharp.TL.Messages.TLAffectedMessages>(requestRead);



                        if (responseRead is TeleSharp.TL.Messages.TLAffectedMessages affectedMessages && affectedMessages.PtsCount > 0)

                        {

                            // Успешная отметка сообщений

                            project.SendInfoToLog($"Все непрочитанные сообщения пользователя с ID {userId} отмечены как прочитанные");

                        }

                        else

                        {

                            // Нет непрочитанных сообщений для отметки

                            project.SendInfoToLog($"Нет непрочитанных сообщений от пользователя с ID {userId}");

                        }

                    }

                }

            }

        }

    }

    else

    {

        // Диалоги не найдены

        project.SendInfoToLog("Диалоги с пользователями не найдены");

    }

}

catch (Exception e)

{

    project.SendErrorToLog(e.Message, true);

}





Точно такая же ошибка появляется и при попытке удаления диалогов

C#:
try

{

    var client = project.Context["client"] as TelegramClient;

    // Получаем объект TelegramClient из контекста проекта



    var requestDialog = new TeleSharp.TL.Messages.TLRequestGetDialogs()

    {

        OffsetDate = 0,

        OffsetId = 0,

        OffsetPeer = new TeleSharp.TL.TLInputPeerSelf(),

        Limit = 100,

        Hash = 0

    };

    // Создаем запрос на получение списка диалогов



    var responseDialog = client.SendRequest<TeleSharp.TL.Messages.TLAbsDialogs>(requestDialog);

    // Отправляем запрос на сервер Telegram для получения списка диалогов



    if (responseDialog is TeleSharp.TL.Messages.TLDialogs)

    {

        // Проверяем тип ответа - полный список диалогов

        var dialogs = (TeleSharp.TL.Messages.TLDialogs)responseDialog;

        // Приводим объект ответа к типу TLDialogs



        var dialogUsers = dialogs.Dialogs.OfType<TeleSharp.TL.TLDialog>().Where(x => x.Peer is TeleSharp.TL.TLPeerUser);

        // Фильтруем диалоги, оставляя только диалоги с пользовательскими пирами



        foreach (var dialogUser in dialogUsers)

        {

            var dialogUserPeer = (TeleSharp.TL.TLPeerUser)dialogUser.Peer;

            // Получаем пира пользователя из диалога

            var userId = dialogUserPeer.UserId;

            // Получаем идентификатор пользователя



            var requestDelete = new TeleSharp.TL.Messages.TLRequestDeleteHistory()

            {

                Peer = new TeleSharp.TL.TLInputPeerUser() { UserId = userId },

                JustClear = false,

                Revoke = true

            };

            // Создаем запрос на удаление диалога с указанным пользователем



            var responseDelete = client.SendRequest<TeleSharp.TL.Messages.TLAffectedMessages>(requestDelete);

            // Отправляем запрос на сервер Telegram для удаления диалога



            if (responseDelete is TeleSharp.TL.Messages.TLAffectedMessages affectedMessages && affectedMessages.PtsCount > 0)

            {

                project.SendInfoToLog($"Диалог пользователя с ID {userId} успешно удален");

                // Если удаление диалога прошло успешно, отправляем информацию в лог

            }

            else

            {

                project.SendInfoToLog($"Не удалось удалить диалог пользователя с ID {userId}");

                // Если удаление диалога не удалось, отправляем информацию об ошибке в лог

            }

        }

    }

    else if (responseDialog is TeleSharp.TL.Messages.TLDialogsSlice)

    {

        // Если ответ является неполным списком диалогов

    }

    else if (responseDialog is TeleSharp.TL.Messages.TLDialogsNotModified)

    {

        // Если диалоги не изменились

    }

}

catch (Exception e)

{

    project.SendErrorToLog(e.Message, true);

    // Обработка и отправка информации об ошибке в лог

}

при удалении чата тоже самое -
CHAT_ID_INVALID

Никак не могу найти решение данной проблеме .
Быть может это как то связано с библиотекой ?
Или же я сам где то накосячил здесь .
Буду очень признателен за вашу помощь !
 

gr8yf0x

Client
Регистрация
02.08.2016
Сообщения
23
Благодарностей
5
Баллы
3
возможно ли залогиниться есть стоит cloud password на аккаунте ?

Вопрос снят .. не прочитал просто внимательно
 
Последнее редактирование:

Asmus003

Client
Регистрация
25.03.2018
Сообщения
158
Благодарностей
59
Баллы
28
112050

Подскажите, в чем проблема может быть? 1 кубик на создание клиента выполняется, а запрос смски - выдает сообщение о плохой проксе (в тот момент же телега открыта в вебе на ней же!) прокси вида socks5://login:password@ip:port
 

Killastryk

Новичок
Регистрация
30.10.2023
Сообщения
2
Благодарностей
0
Баллы
1
Привет здешним мыслителям! Подскажите, как с помощью данной библиотеки реализовать вступление в группы? Мучаюсь, но пока не выходит.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 508
Благодарностей
1 759
Баллы
113
Привет здешним мыслителям! Подскажите, как с помощью данной библиотеки реализовать вступление в группы? Мучаюсь, но пока не выходит.
для начала составить цепочку/логику действий/шагов (поиск, нажатия и т.п.). определить координаты/xpath элементов с которыми нужно взаимодействие. автоматизировать нужные действия из цепочки шагов. Через api проверять успешность выполнения.
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 059
Благодарностей
119
Баллы
63
для начала составить цепочку/логику действий/шагов (поиск, нажатия и т.п.). определить координаты/xpath элементов с которыми нужно взаимодействие. автоматизировать нужные действия из цепочки шагов. Через api проверять успешность выполнения.
Не понял, это же работа через API, а не через браузер.

P.S. Тема зачетная, тоже хотелось разобраться, но многое не понятно.
Был бы благодарен тем кто мог бы объяснить.
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 508
Благодарностей
1 759
Баллы
113
Не понял, это же работа через API, а не через браузер.
Через браузер/мобильное приложение тоже по апи работает
Если делаете это в браузере, то можно в devtools смотреть какие запросы отправляются по каким действиям.
Составляете список нужных действий для нужных запросов, Делаете дейтвие/запрос, получаете в ответ json, из него парсите все нужные параметры и делаете новый запрос по апи с нужными параметрами и так далее. В итоге получите на каждое действие свой запрос и используемые параметры. Потом уже можете писать код работы с нужными действиями используя методы из этой dll/апи или свои. Как вариант, можно посмотреть примеры из документации к апи этой либы.
 
  • Спасибо
Реакции: bizzon

Killastryk

Новичок
Регистрация
30.10.2023
Сообщения
2
Благодарностей
0
Баллы
1
Через браузер/мобильное приложение тоже по апи работает
Если делаете это в браузере, то можно в devtools смотреть какие запросы отправляются по каким действиям.
Составляете список нужных действий для нужных запросов, Делаете дейтвие/запрос, получаете в ответ json, из него парсите все нужные параметры и делаете новый запрос по апи с нужными параметрами и так далее. В итоге получите на каждое действие свой запрос и используемые параметры. Потом уже можете писать код работы с нужными действиями используя методы из этой dll/апи или свои. Как вариант, можно посмотреть примеры из документации к апи этой либы.
Логично конечно, но тут есть готовая библиотека и есть человек который ее немного переделал, именно поэтому я рассчитываю на ответ со стороны человека который точно знает как это сделать, я работаю с телегграм апи впервые, и у него очень странный апи как по мне, но мне для работы нужен данный блок кода, сам пытался разобраться но то пишет что чата нет такого, хотя он есть, то что я не правильно указываю данные чата. снифать круто и да помогло бы если бы тут не была зависимость от слоев АПИ.
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 059
Благодарностей
119
Баллы
63
Логично конечно, но тут есть готовая библиотека и есть человек который ее немного переделал, именно поэтому я рассчитываю на ответ со стороны человека который точно знает как это сделать, я работаю с телегграм апи впервые, и у него очень странный апи как по мне, но мне для работы нужен данный блок кода, сам пытался разобраться но то пишет что чата нет такого, хотя он есть, то что я не правильно указываю данные чата. снифать круто и да помогло бы если бы тут не была зависимость от слоев АПИ.
Мне кажется, самый простой способ разобраться с этой темой - это в складчину заплатить автору поста или тем кто знает как реализовать.
Если что, тоже готов скинуться.
 
Последнее редактирование:

radv

Client
Регистрация
11.05.2015
Сообщения
3 508
Благодарностей
1 759
Баллы
113
в новых версиях любой DLL могут меняться способы и методы работы с данными и при обновлении могут появиться ошибки. Самый лучший способ, это изучать описание от разработчика.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)