PDA

View Full Version : سوال: دریافت عکس پروفایل کاربر یا کانال تلگرام با استفاده از لایبراری tlsharp



hd6855
پنج شنبه 19 مرداد 1396, 20:25 عصر
سلام
من از لایبراری tlsharp (https://github.com/sochix/TLSharp) استفاده میکنم یه کلاینت تلگرام ساختم میتونم کانکت شم پیام بفرستم مشکلی که دارم اینه که نمیدونم چطوری عکس پروفایل یوزر یا کانال رو تو پیکچرباکس نمایش بدم چندین روزه تو نت همه جا گشتم نتونستم به نتیجه ای برسم
هرکی از دوستان میتونه راهنمای کنه ممنون میشم

shahryari
دوشنبه 23 مرداد 1396, 09:33 صبح
سلام
من از لایبراری tlsharp (https://github.com/sochix/TLSharp) استفاده میکنم یه کلاینت تلگرام ساختم میتونم کانکت شم پیام بفرستم مشکلی که دارم اینه که نمیدونم چطوری عکس پروفایل یوزر یا کانال رو تو پیکچرباکس نمایش بدم چندین روزه تو نت همه جا گشتم نتونستم به نتیجه ای برسم
هرکی از دوستان میتونه راهنمای کنه ممنون میشم
سلام
میشه خواهش کنم یه مثال ساده آپلود کنید؟
باتشکر

hd6855
سه شنبه 24 مرداد 1396, 01:50 صبح
سلام
میشه خواهش کنم یه مثال ساده آپلود کنید؟
باتشکر
سلام
بفرمایید.


int apiId = 12345;
string apiHash = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
string phoneNumber = "+989123456789";
store = new FileSessionStore();
client = new TelegramClient(apiId, apiHash, store, "session");

bool connected = await client.ConnectAsync();

if(client.IsUserAuthorized())
{
MessageBox.Show("Connected");
}
else
{
hash = await client.SendCodeRequestAsync(phoneNumber);
MessageBox.Show("code sended");
}
private async void btnSendCode_Click(object sender, EventArgs e)
{
var user = await client.MakeAuthAsync(phoneNumber, hash, textCode.Text);
}
private async void btnSendMessage_Click(object sender, EventArgs e)
{
var found = await client.SearchUserAsync("user", 1);
var u = found.users.lists.OfType<TLUser>().FirstOrDefault();
if (u != null)
{
await client.SendMessageAsync(new TLInputPeerUser() { user_id = u.id, access_hash = (long)u.access_hash }, textBox2.Text);
}
}

hd6855
سه شنبه 24 مرداد 1396, 02:03 صبح
نحوه دریافت عکس پروفایل هم به این شکله .ولی یه مشکل دارم این که نمیدونم چطوری
local_id
secret
volume_idو
رو بدست بیارم خواهش میکنم کسی میتونه راهنمای کنه ممنون میشم

کد دریافت عکس پروفایل که مشکل دارم باهاش:
TLFile file = await client.GetFile(new TLInputFileLocation()
{
local_id = location.local_id,
secret = location.secret,
volume_id = location.volume_id
}, 1024 * 256); // save to jpeg
using (var m = new MemoryStream(file.bytes))
{
var img = Image.FromStream(m);
img.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
}

hd6855
سه شنبه 24 مرداد 1396, 15:37 عصر
تونستم مشکلمو حل کنم کدشم میذارم کسی مشکل داشت رفع شه:لبخند:
چند روز دنبال حل همین مشکل بودم:افسرده:

یوزر رو سرچ میکنه و عکس پروفایلشو نمایش میده

var result = await client.SearchUserAsync(txtSearchUser.Text);
var user = result.users.lists.OfType<TLUser>().FirstOrDefault();

var photo = ((TLUserProfilePhoto)user.photo);
var photoLocation = (TLFileLocation)photo.photo_big;

TLFile file = await client.GetFile(new TLInputFileLocation()
{
local_id = photoLocation.local_id,
secret = photoLocation.secret,
volume_id = photoLocation.volume_id
}, 1024 * 256);

// save to jpeg
using (var m = new MemoryStream(file.bytes))
{
var img = Image.FromStream(m);
userImage.Image = img;
//img.Save("fileName", System.Drawing.Imaging.ImageFormat.Jpeg);
}

mahdivpg
سه شنبه 31 مرداد 1396, 16:05 عصر
الآن عکس خطی که بهش کانکت شدی رو میخوایی یا عکس مخاطبات و کانال هات ؟

jamande
چهارشنبه 17 آبان 1396, 23:38 عصر
سلام
سایتی به نام تلجو هست که
سرویس اشتراک و جستجو کانال و محتوای کانال های تلگرام هست و همچین کاری داره انجام میده
میتونید اونجا نمونش رو ببینید:
https://telejo.com