- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
- [C#] Hướng dẫn convert HTML code sang PDF File trên NetCore 7 Winform
[C#] Gởi tin nhắn Telegram sử dụng TLSharp Lib Winform
Xin chào các bạn, bài viết hôm nay mình sẽ chia sẽ đến các bạn sử dụng thư viện TLSharp
làm việc với chương trình Chat Telegram để gởi tin nhắn C#, Winform.
[C#] How to send a message Telegram
Telegram là ứng dụng nhắn tin và gọi điện miễn phí qua internet gây được nhiều tiếng vang trên thế giới trong thời gian dài.
Thế nhưng có lẽ với người dùng Việt còn khá xa lạ, nhưng thời gian gần đây nhiều người Việt cũng đã và đang sử dụng ứng dụng này.
Trong bài viết này, mình sẽ hướng dẫn các bạn cách sử dụng thư viện TLSharp để lấy thông tin danh bạ trên Account Telegram của mình.
Và gởi tin nhắn đến bạn bè của mình một cách nhanh chóng.
Giao diện demo ứng dụng gởi tin nhắn Telegram C# Winform:
Thư viện TLSharp hỗ trợ các chức năng sau:
- IsPhoneRegisteredAsync
- SendCodeRequestAsync
- MakeAuthAsync
- SignUpAsync
- GetContactsAsync
- SendMessageAsync
- SendTypingAsync
- GetUserDialogsAsync
- SendUploadedPhoto
- SendUploadedDocument
- GetFile
- UploadFile
- SendPingAsync
Video demo ứng dụng C#:
Đầu tiên, từ giao diện Nuget các bạn cài đặt thư viện TLSharp vào Project của mình:
PM> Install-Package TLSharp -Version 0.1.0.574
Chi tiết các bạn có thể vào trang github của thư viện để tham khảo thêm về tài liệu ở link bên dưới:
https://github.com/sochix/TLSharp
Đầu tiên các bạn cần truy cập vào trang Telegram Developer để đăng ký ứng dụng, để lấy API_ID và API_HASH ở link sau:
Sau khi truy cập vào website, các bạn nhập vào số điện thoại của mình.
Khi nhập số điện thoại xong, nó sẽ gởi code về ứng dụng chat của mình và bạn nhập token code vào.
Dưới đây là hình ảnh ID và Hash của ứng dụng mình đăng ký.
Full source code ứng dụng gởi tin nhắn Telegram C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TeleSharp.TL;
using TeleSharp.TL.Contacts;
using TeleSharp.TL.Upload;
using TLSharp.Core;
namespace TelegramDemo
{
public partial class Form1 : Form
{
int apiId = 0000; //nhap id của bạn
string apiHash = "xxxxxx";
TelegramClient client;
string myPhoneNumber = "+84xxxxx";
string hash;
TLContacts tLContact;
string userIDSelected;
public Form1()
{
InitializeComponent();
}
private async void button1_Click(object sender, EventArgs e)
{
File.Delete("session.dat");
client = new TelegramClient(apiId, apiHash);
await client.ConnectAsync();
hash = await client.SendCodeRequestAsync(myPhoneNumber);
}
private async void btnAuth_Click(object sender, EventArgs e)
{
await client.MakeAuthAsync(myPhoneNumber, hash, txtCode.Text);
tLContact = await client.GetContactsAsync();
foreach (TLUser user in tLContact.Users)
{
if (!string.IsNullOrEmpty(user.Phone)){
var fullName = $"{user.FirstName} {user.LastName}";
var phone = user.Phone;
string[] row = { fullName, phone, user.Id.ToString() };
var listviewItem = new ListViewItem(row);
listContact.Items.Add(listviewItem);
}
}
}
public Image ReadImageFromUser(TLUser user)
{
if (user.Photo == null) return Properties.Resources.no_avatar;
var photo = ((TLUserProfilePhoto)user.Photo);
var photoLocation = (TLFileLocation)photo.PhotoBig;
TLFile file = client.GetFile(new TLInputFileLocation()
{
LocalId = photoLocation.LocalId,
Secret = photoLocation.Secret,
VolumeId = photoLocation.VolumeId
}, 1024 * 256).Result;
Image image;
using (var m = new MemoryStream(file.Bytes))
{
image = Image.FromStream(m);
}
return image;
}
private void listContact_SelectedIndexChanged(object sender, EventArgs e)
{
if (listContact.SelectedItems.Count == 0)
return;
ListViewItem item = listContact.SelectedItems[0];
var phone = item.SubItems[1].Text;
userIDSelected = item.SubItems[2].Text;
var user = tLContact.Users
.Where(x => x.GetType() == typeof(TLUser))
.Cast<TLUser>()
.FirstOrDefault(x => x.Phone == phone);
var userPhoto = ReadImageFromUser(user);
picPhoto.Image = userPhoto;
}
private async void btnSendMessage_Click(object sender, EventArgs e)
{
await client.SendMessageAsync(new TLInputPeerUser() { UserId = Convert.ToInt32(userIDSelected) }, txtMessage.Text);
}
}
}
Thanks for watching!