Telegram-ға C# арқылы хат жібереміз



C# — кітапханаларға бай дамыған тіл, бірақ олардың ішінде Telegram API-мен жұмыс жасай алатын бірде-бір кітапхана жоқ. Бұл жағдайды мен өзімнің кішігірім TLSharp деп аталатын кітапханам арқылы түземекшімін.

Бірден кейбір жайттарды атап кетейін. Хат жіберу Telegram Bot API емес Telegram API арқылы іске асырылады. Не айырмашылығы бар?

Telegram Bot API — бұл боттар құру үшін жасалынған API, сондықтан да шектеулері өте көп. Мысалыға, пайдаланушы сіздің ботыңызды қоспағанша оған хат жібере алмайсыз. Telegram API-де ондай шектеу жоқ. Барлық ресми клиенттер сол Telegram API пайдаланады.

Сессияны құрамыз


Алдымен кітапхананы іске қосып, сессиялар қоймасын жасап аламыз:
var store = new FileSessionStore();
var client = new TelegramClient(store, "session");


Сервермен байланысамыз:
client.Connect();


Енді біз сессияны құра аламыз. Ол үшін келесі кодты орындау керек:
var hash = await client.SendCodeRequest(phoneNumber); // сессия құру үшін сұраныс жібереміз

var code = "1234"; // Telegram-нан келетін код

var user = await client.MakeAuth(phoneNumber, hash, code); // сессияны құрамыз


Методтың параметрлері туралы:

— phoneNumber — бұл сіздің телефон нөмеріңіз, интернационал форматта (мысалы, 79184981723)
— code — Telegram-нан алынатын код, SendCodeRequest методын орындаған соң

Хат жібереміз


Хатты жіберу үшін алдымен контактті телефон нөмері бойынша немесе пайдаланушы аты бойынша импорттап аламыз:
var userByPhoneId = await client.ImportContactByPhoneNumber("791812312323"); // телефон номер бойынша импорт
var userByUserNameId = await await client.ImportByUserName("userName"); // пайдаланушы аты бойынша импорт


Хат жібереміз:
await client.SendMessage(userId, "Hello Codeo!");


Кітапхананың интерфейсін барынша қарапайым етіп жасауға тырыстым. Мысалыға, мысықтың суретін жіберу үшін келесідей кодты орындау қажет:
var mediaFile = await client.UploadFile("cat.jpg", file);
var res = await client.SendMediaMessage(userId, mediaFile);




Қазіргі кезде кітапханада тек қажетті деген методтар ғана жасалған. Сондықтан да продакшнда пайдалануға жарамайды. Егер сонда да пайдаланғыңыз келсе кодты github сайтынан алып, компиляция жасап TLSharp.Core.dll файлына сілтеме жасауыңыз қажет.

Назарларыңызға рақмет, егер коммиттеріңізбен жобаны қолдайтын болсаңыз, қуанышты болар едім.

GitHub репозиторий: github.com/sochix/TLSharp

Түпнұсқа.

  • +1
0 пікір
Тек тіркелген қолданушылар ғана пікір қалдыра алады.