Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 3
Регистрация: 02.06.2013
Сообщений: 139
1

Получить ссылку на медиафайл VkNet

07.12.2016, 17:55. Просмотров 1617. Ответов 1


С помощью метода Messages.GetHistory я получаю историю сообщений пользователя с одним из его друзей (необязательно, с кем угодно).В общем-то, с помощью foreach я загрузил текстовые сообщения, а как быть со вложениями? Допустим, я уже смог написать условие на тот случай, если вложение это фотография, но ссылку на эту фотографию я получить не могу.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 var col = vk.Messages.GetHistory(out value, false, ((Label)sender).TabIndex, null, 20, null, false); 
   foreach (var qwe in col.Reverse())
            {
                Label ContentText = new Label(); // текст сообщения
 
                     ...
                  <настройка внешнего вида и расположения метки>
                     ...
 
                Panel AnyP = new Panel(); // панель, на которой будет создана метка
 
                     ...
                   <настройка панели>
                     ...
 
                PictureBox pic = new PictureBox(); // контейнер, в котором будет храниться вложение-фотка
                
                //вот тут самое интересное
                VkNet.Model.Attachments.Attachment at = new Attachment();
                if (qwe.Attachments.Count > 0) //если в сообщении есть вложения, то
                {
                    at = qwe.Attachments.First(); //берем первый
                    string atname = at.Type.ToString(); //берем его тип
 
                    listBox1.Items.Add(atname); //вываливаем в листбокс
                    if (atname == "VkNet.Model.Attachments.Photo") //кое-как придумал, как определить тип вложения
                    {
                        //далее тупо методом тыка
 
                        VkNet.Model.Attachments.MediaAttachment media;
                        media = (MediaAttachment) at.Instance;
 
                        listBox1.Items.Add("Instance: "+media+" ID: "+media.Id.Value); 
 
                        VkNet.Model.Attachments.Photo pht = new Photo();
                        pht.OwnerId = media.OwnerId; //вот, к примеру, айди владельца вложения 
 
                        listBox1.Items.Add("Photo:"+pht.OwnerId.Value);
 
                       // media = (MediaAttachment)qwe;
 
                        pht.Photo807 = VkUser.Photo400Orig; //тут загрузка авы пользователя 
//(проверял как будет отображаться картинка), однако именно в этом и заключается вопрос: как загрузить сюда вместо
//аватара саму фотографию-вложение?
                                              
                        pic.SizeMode = pictureBox1.SizeMode;
                        pic.Load(pht.Photo807.ToString());
 
                        AnyP.Width = (pic.Width) + 16;
                        AnyP.Height = (pic.Height) + 16;
 
                        AnyP.Controls.Add(pic); // добавляем на панель
 
                    }
                }
Как видите, методом тыка немногое удалось обнаружить. Результат вы можете видеть на прикрепленном скриншоте. В picturebox загружается аватар текущего пользователя, а должна быть фотография, которую отправил собеседник.
Буду очень признателен, если вы мне с этим поможете.

Получить ссылку на медиафайл VkNet
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2016, 17:55
Ответы с готовыми решениями:

[VkNet] VkNet.Exception.UserAuthorizationFailException при использовании функции User.Search
При использовании функции User.Search возникает ошибка...

Достать текущий воспроизводимый медиафайл из Windows 10
В Windows 10 когда играет аудио в каком-нибудь приложении, то часто можно это аудио увидеть в...

Авторизация Вконтакте через VkNet, ошибка VkNet.Exception.VkApiException
Здравствуйте, писал небольшое приложение для работы с vk api. Для этого через Nuget установил...

[VkNet] Как получить пол пользователя?
Доброго времени суток! Где: Работаю с Библиотекой VkNet в Visual Studio 2017 Community ...

1
19 / 19 / 9
Регистрация: 14.09.2016
Сообщений: 94
Записей в блоге: 1
08.12.2016, 14:22 2
https://vk.com/dev/messages.getHistoryAttachments
используя данные метод ты можешь получить вложения любого диалога
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2016, 14:22

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Не могу получить список участников беседы VKNet
Всем привет. Хочу получить список участников беседы через VKNet. var count =...

VkNet в 2018, или как получить последнее сообщение от определенного пользователя
Всем привет. Решил поработать с API VK, а именно VkNet. И вот пытаюсь получить последнее...

Получить ссылку из Excel
=ЕСЛИ(D170=&quot;&quot;;&quot;&quot;;ГИПЕРССЫЛКА(СЦЕПИТЬ(&quot;http://www.apc.com/resource/includ/techspec_index.cfm?base_sku...

Получить ссылку по Гуиду
&amp;НаКлиенте Номенклатура = ПолучитьНоменклатуруПоГуид(Новый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.