Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Автопостинг в свою группу вк

Автопостинг в свою группу вк

Поделиться
Marat_ZahidylinПостоялецwww14 мая 201712:50#0
Как запостить текст я знаю.
А вот как запостить фото через с#?
E-ConeУчастникwww14 мая 201713:25#1
Получить адрес сервера для загрузки, отправить на него до 5 фото, отправить запрос на сохранение фото, отправить итоговое фото в группу. Все это есть в документации
Marat_ZahidylinПостоялецwww14 мая 201713:28#2
E-Cone
> Получить адрес сервера для загрузки, отправить на него до 5 фото, отправить
> запрос на сохранение фото, отправить итоговое фото в группу. Все это есть в
> документации
Но там только для JavaScript описано. Можете пожалуста поподробнее описать, если можете. Именно С# winforms
E-ConeУчастникwww14 мая 201713:34#3
Я через Юнити делал - там есть класс WWW для отправки post и get запросов. В доках описаны универсальные варианты - надо на адрес api.vk.com/method<methodname> отправлять нужный запрос с параметрами - сто пудов в winforms тоже должен быть способ отправлять post и get
Marat_ZahidylinПостоялецwww14 мая 201713:47#4
E-Cone
> Я через Юнити делал - там есть класс WWW для отправки post и get запросов. В
> доках описаны универсальные варианты - надо на адрес
> api.vk.com/method<methodname> отправлять нужный запрос с параметрами - сто
> пудов в winforms тоже должен быть способ отправлять post и get
Например так я делаю пост текста: https://api.vk.com/method/wall.post?owner_id={0}&access_token={1}&message={2}
Marat_ZahidylinПостоялецwww14 мая 201714:09#5
https://api.vk.com/method/photos.getWallUploadServer?access_token={0}
Вот так ругается что в доступе отказано при вызове этой функции
scope=photos,offline,wall

Правка: 14 мая 2017 14:11

E-ConeУчастникwww14 мая 201714:54#6
ты в качестве жетона доступа пытаешься передать настройки. жетон надо получать при авторизации, а при вызове методов - передавать и его, и все требуемые параметры
Marat_ZahidylinПостоялецwww14 мая 201715:21#7
E-Cone
> ты в качестве жетона доступа пытаешься передать настройки. жетон надо получать
> при авторизации, а при вызове методов - передавать и его, и все требуемые
> параметры
Уже заработало.

Теперь не знаю как это сделать
"Это поле должно содержать изображение в формате multipart/form-data. "


Вот так не работает

 var client = new System.Net.Http.HttpClient();
            var content = new System.Net.Http.MultipartFormDataContent();
            content.Add(new System.Net.Http.StreamContent(
                System.IO.File.Open(Publics.CurrPath()+"Image1.jpg", System.IO.FileMode.Open)), "photo");
            var result = client.PostAsync(resultParsed, content);
            
            System.Net.Http.HttpClient httpClient = new System.Net.Http.HttpClient();
            System.Net.Http.MultipartFormDataContent form = new System.Net.Http.MultipartFormDataContent();

Правка: 14 мая 2017 15:21

E-ConeУчастникwww14 мая 201715:50#8
у меня это выглядит вот так
form.AddBinaryData( "file1", net.screenShot.EncodeToPNG(), "screenshot.png", "image/png");
Попробуй ради интереса заменить "photo" на "image/png" в content.Add

На StackOverflow есть такой код:

using(var f = System.IO.File.OpenRead(@"F:\test.html"))
{
      var client = new HttpClient();
      var content = new StreamContent(f);
      var mpcontent = new MultipartFormDataContent();
      content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
      mpcontent.Add(content);   
      await client.PostAsync("http://ya.ru", mpcontent);
}

Правка: 14 мая 2017 15:52

Marat_ZahidylinПостоялецwww14 мая 201716:09#9
теперь другая проблема
https://api.vk.com/method/photos.getWallUploadServer?access_token={0}
Получаю сылку, загружаю фото

Получаю что-то типа такого:

"server":123456,
"photos_list":"[{\"photo\":\"e9f2eba71b:y\",\"sizes\":[[\"s\",\"123456852\",\"e65f\",\"Br4ir9YAvO8\",75,41],[\"m\",\"123456852\",\"e660\",\"Lqpe1N8s8zY\",130,71],[\"x\",\"123456852\",\"e661\",\"tRFbnaIP_4c\",604,330],[\"y\",\"123456852\",\"e662\",\"8JhBOy0qR6o\",748,409],\"kid\":\"569c3da3b168b347315aa5adc92a953a\",\"debug\":\"xsymyxyyyoypyqyry\"}]",
"aid":98754321,
"hash":"22b333dbbef7cd9b1f9829b5f8713f86"

Только без поля "aid":98754321,  - а без него фото не сохраняется.

Marat_ZahidylinПостоялецwww14 мая 201717:06#10
Все, все заработало. Спасиба что помог.

/ Форум / Программирование игр / Сеть

2001—2017 © GameDev.ru — Разработка игр