- [TOOL] Chia sẻ phần mềm thay đổi thông tin cấu hình máy tính
- [C#] Hướng dẫn Export dữ liệu ra file Microsoft Word Template
- [C#] Chia sẻ source code tool kiểm tra domain website
- [C#] Hướng dẫn tạo file PDF sử dụng thư viện QuestPDF
- [C#] Hướng dẫn tạo ứng dụng dock windows giống Taskbar
- [C#] Chia sẻ source code sử dụng Object Listview trên Winform
- [VB.NET] Chia sẻ source code quản lý thu chi mô hình 3 lớp Winform
- [DATABASE] Xóa lịch sử danh sách đăng nhập tài khoản trên SMSS Sqlserver Management Studio
- [C#] Sử dụng FolderBrowserDialog Vista trên Winform
- [DEVEXPRESS] Chia sẻ tool Winform UI Templates Early Access Preview (EAP)
- [C#] Chia sẻ source code Spin Content (Trộn nội dung văn bản theo từ đồng nghĩa) trên Winform
- [VB.NET] Chia sẻ source code lịch âm dương và hẹn lịch nhắc việc
- [C#] Hướng dẫn đọc thông số thiết bị Thiết bị kiểm tra Pin (HIOKI BATTERY HiTESTER BT3562)
- [VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
- [C#] Hướng dẫn chứng thực đăng nhập ứng dụng bằng vân tay (Finger Print) trên máy tính
- [C#] Color Thief cách xuất màu sắc thiết kế từ hình ảnh
- [C#] Cách tạo bản quyền và cho phép dùng thử ứng dụng Winform
- [C#] Hướng dẫn sử dụng trình duyệt web Chrome convert HTML sang tập tin file PDF
- [C#] Kết nôi điện thoại Android, IOS với App Winform via Bluetooth
- [DATABASE] Cách query cộng trừ dồn dần trong Sqlserver
[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!