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

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
488
Благодарностей
149
Баллы
43
  • Спасибо
Реакции: stud

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
Коллеги!
Всем спасибо, кто поддержал статью.

.
 

Kokos

Client
Регистрация
05.09.2019
Сообщения
117
Благодарностей
56
Баллы
28
Статья огонь, спасибо.
 
  • Спасибо
Реакции: stud

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 747
Благодарностей
1 141
Баллы
113
А как отправить сообщение и/или картинку пользователю?
 
  • Спасибо
Реакции: stud

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
А как отправить сообщение и/или картинку пользователю?
С отправкой простого сообщения, там все просто.
Получаем данные юзера (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

zarufakis

Client
Регистрация
22.03.2019
Сообщения
1 747
Благодарностей
1 141
Баллы
113
Получаем данные юзера (AccessHash и UserId), кому отправляем сообщение. Получаем любым способом: из списков участников групп, поиском, из диалогов ...
Можно этот вопрос развернуто, потому что все примеры из того же гитхаба ругаются на оператор await.
 

Castaneda

Client
Регистрация
24.05.2019
Сообщения
873
Благодарностей
299
Баллы
63
Был бы у нас такой препод в универе, знал бы я хорошо C#.
Автору спасибо за подробнейшее описание! Статья супер!)
 
  • Спасибо
Реакции: stud

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
Можно этот вопрос развернуто, потому что все примеры из того же гитхаба ругаются на оператор 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
};
 

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28
А подскажите пожалуйста как с паролем залогиниться?
 

haliul

Client
Регистрация
18.01.2016
Сообщения
95
Благодарностей
12
Баллы
8
Здравствуйте а что значит
Couldn't read the packet length
в логе после выполнения второго кубика авторизации
 

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
Здравствуйте а что значит
Couldn't read the packet length
в логе после выполнения второго кубика авторизации
Приветствую.
значит ошибка была при передаче данных.
Можно повторить запрос.
Данная ошибка как правило появляется при плохих прокси, попробуйте другие.
 

le0

Новичок
Регистрация
22.09.2022
Сообщения
1
Благодарностей
0
Баллы
1
А сколько устройств и их параметров вы прошили в библиотеку для рандомизации ?
Кстати я видел в некоторых клиентах что lang_pack='android' а не язык )
Кто-то вообще реверсил топовые телеграм клиенты )?
 

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
А сколько устройств и их параметров вы прошили в библиотеку для рандомизации ?
в библиотеке устройства не прошиты)
вы сами прописываете их из своих источников тут
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
 

Szerzs

Client
Регистрация
15.06.2019
Сообщения
260
Благодарностей
68
Баллы
28

Szerzs

Client
Регистрация
15.06.2019
Сообщения
260
Благодарностей
68
Баллы
28

neonb

Пользователь
Регистрация
10.05.2022
Сообщения
35
Благодарностей
15
Баллы
8

Sho

Активный пользователь
Регистрация
08.08.2022
Сообщения
100
Благодарностей
51
Баллы
28
  • Спасибо
Реакции: neonb

AleXPrischepA

Client
Регистрация
06.05.2015
Сообщения
209
Благодарностей
97
Баллы
28
@stud загляни в ЛС...
 

kokoko

Client
Регистрация
23.06.2016
Сообщения
249
Благодарностей
19
Баллы
18
а я как раз пишу бота ))) у некоторых операторов безлимитный интернет через телегу, я человеку пишу бота который шарится по сайтам и возвращает html страницы, ну и ещё качает файлы и пересылает их через телегу, инфа нужная, пригодится)) спасибо
 

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
171
Благодарностей
57
Баллы
28
Проблему с переодическим разлогином как то можно решить?
 

stud

Client
Регистрация
23.06.2013
Сообщения
88
Благодарностей
140
Баллы
33
Проблему с переодическим разлогином как то можно решить?
данные авторизации сохраняется в файл
как правило разлогина из сессии не происходит,
все зависит как с ней работаешь
 
Регистрация
26.05.2020
Сообщения
514
Благодарностей
173
Баллы
43
а я как раз пишу бота ))) у некоторых операторов безлимитный интернет через телегу, я человеку пишу бота который шарится по сайтам и возвращает html страницы, ну и ещё качает файлы и пересылает их через телегу, инфа нужная, пригодится)) спасибо
Есть пример кубика отправки файла? )
 

kokoko

Client
Регистрация
23.06.2016
Сообщения
249
Благодарностей
19
Баллы
18
  • Спасибо
Реакции: Андрейка2020

Deisler

Client
Регистрация
26.10.2019
Сообщения
486
Благодарностей
191
Баллы
43
.
 
Последнее редактирование:

Deisler

Client
Регистрация
26.10.2019
Сообщения
486
Благодарностей
191
Баллы
43

Deisler

Client
Регистрация
26.10.2019
Сообщения
486
Благодарностей
191
Баллы
43
на код

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
 

simbioz

Client
Регистрация
31.08.2014
Сообщения
157
Благодарностей
28
Баллы
28
Всем привет, подскажите что не так плиз? Там где красным замазано , это номер телефона.
103196
 

radv

Client
Регистрация
11.05.2015
Сообщения
3 823
Благодарностей
2 034
Баллы
113

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