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

Статья огонь, спасибо.
 
  • Спасибо
Реакции: stud
А как отправить сообщение и/или картинку пользователю?
 
  • Спасибо
Реакции: stud
А как отправить сообщение и/или картинку пользователю?

С отправкой простого сообщения, там все просто.
Получаем данные юзера (AccessHash и UserId), кому отправляем сообщение. Получаем любым способом: из списков участников групп, поиском, из диалогов ...
Формируем запрос, и отправляем.

C#:
Развернуть Свернуть Копировать
// Отправить сообщение
long accessHashUser = 0;
int idUser = 0;

// Данные User, кому отправляем сообщения
var inpUser = new TeleSharp.TL.TLInputPeerUser
{
    AccessHash = accessHashUser,
    UserId = idUser
};

var random = new Random();
// Генерируем случайный ID сообщения
long idMessage = (long)random.Next() << 32 | (uint)random.Next();

// Запрос отправки сообщения
var requestUserMess = new TeleSharp.TL.Messages.TLRequestSendMessage()
{
    Peer = inpUser,
    Message = "Text Message",
    RandomId = idMessage
};
var sendRes = client.SendRequest<TeleSharp.TL.TLAbsUpdates>(requestUserMess);


С отправкой медиа, там не все так просто, на целую статью потянет)
Как направление, могу подсказать порядок запросов:
  1. Загружаем файл на сервер Телеграм методом upload.saveFilePart (до 10Mb) или upload.saveBigFilePart (более 10Mb)
  2. Отправляем медиа сообщение методом messages.sendMedia
 
  • Спасибо
Реакции: zarufakis
Получаем данные юзера (AccessHash и UserId), кому отправляем сообщение. Получаем любым способом: из списков участников групп, поиском, из диалогов ...
Можно этот вопрос развернуто, потому что все примеры из того же гитхаба ругаются на оператор await.
 
Был бы у нас такой препод в универе, знал бы я хорошо C#.
Автору спасибо за подробнейшее описание! Статья супер!)
 
  • Спасибо
Реакции: stud
Можно этот вопрос развернуто, потому что все примеры из того же гитхаба ругаются на оператор await.

На примере диалогов, если из стартпоста, то
C#:
Развернуть Свернуть Копировать
// Ищем юзера по username в диалоге
var user = dialogs.Users.OfType<TeleSharp.TL.TLUser>().FirstOrDefault(x => x.Username == "username");

// Подставляем данные найденного пользователя
var inpUser = new TeleSharp.TL.TLInputPeerUser
{
    AccessHash = user.AccessHash.Value,
    UserId = user.Id
};
 
А подскажите пожалуйста как с паролем залогиниться?
 
Здравствуйте а что значит
Couldn't read the packet length
в логе после выполнения второго кубика авторизации
 
Здравствуйте а что значит
Couldn't read the packet length
в логе после выполнения второго кубика авторизации
Приветствую.
значит ошибка была при передаче данных.
Можно повторить запрос.
Данная ошибка как правило появляется при плохих прокси, попробуйте другие.
 
А сколько устройств и их параметров вы прошили в библиотеку для рандомизации ?
Кстати я видел в некоторых клиентах что lang_pack='android' а не язык )
Кто-то вообще реверсил топовые телеграм клиенты )?
 
А сколько устройств и их параметров вы прошили в библиотеку для рандомизации ?
в библиотеке устройства не прошиты)
вы сами прописываете их из своих источников тут
C#:
Развернуть Свернуть Копировать
var app = new TLSharp.Core.AppData(16623, "8c9dbfe58437d1739540f5d53c72ae4b")
{
    DeviceModel = "Desktop",    // Модель нашего устройства
    AppVersion = "1.4.8 x64",    // Версия нашего приложения
    LangCode = "ru",            // Язык нашего приложения
    SystemLangCode = "ru",      // Язык нашей системы
    SystemVersion = "Windows 10", // Версия нашей системы
};

Кстати я видел в некоторых клиентах что lang_pack='android' а не язык )
lang_pack - используется только в оф.клиентах
у нас языки тут прописываются LangCode и SystemLangCode
 
Приветствую.Не подскажете-что не так?

98221
 
а я как раз пишу бота ))) у некоторых операторов безлимитный интернет через телегу, я человеку пишу бота который шарится по сайтам и возвращает html страницы, ну и ещё качает файлы и пересылает их через телегу, инфа нужная, пригодится)) спасибо
 
Проблему с переодическим разлогином как то можно решить?
 
Проблему с переодическим разлогином как то можно решить?
данные авторизации сохраняется в файл
как правило разлогина из сессии не происходит,
все зависит как с ней работаешь
 
а я как раз пишу бота ))) у некоторых операторов безлимитный интернет через телегу, я человеку пишу бота который шарится по сайтам и возвращает html страницы, ну и ещё качает файлы и пересылает их через телегу, инфа нужная, пригодится)) спасибо
Есть пример кубика отправки файла? )
 
на код

C#:
Развернуть Свернуть Копировать
var client = project.Context["client"];
    
    var chatInfo = new TeleSharp.TL.Channels.TLRequestGetFullChannel()
        {
    Channel = new TeleSharp.TL.TLInputChannel()
            {
                ChannelId= -1189411436
                            
            }
         };

получаю ошибку "CHANNEL_INVALID". Группа существует. Аккаунт в ней состоит. Что я не правильно делаю ?

Ссылка на группу https://web.telegram.org/z/#-1189411436
 
Всем привет, подскажите что не так плиз? Там где красным замазано , это номер телефона.
103196
 

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