private int FillOutTextBox(string[] ids) { try { //api.Groups.GetById(...) не создает поля Cover //Поэтому нужно это делать вручную. List <Group> res = new List <Group>(); Dictionary <string, string> d = new Dictionary <string, string>(); d.Add("group_ids", String.Join(",", ids)); d.Add("fields", "cover"); VkNet.Utils.VkParameters param = new VkNet.Utils.VkParameters(d); VkNet.Utils.VkResponseArray v = api.Call("groups.getById", param); foreach (var g in v) { res.Add(VkNet.Model.Group.FromJson(g)); } foreach (var g in res) { //if (g.Photo50.LocalPath == "/images/community_50.png") if (check.CheckGroup(g)) { OutputTextBox.Text += g.Id.ToString() + "\r\n"; } } } catch (Exception e) { MessageBox.Show("Неверный сервисный ключ доступа.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(0); } return(1); }
public void WallPost(long groupid, DateTime postDate, string hashtags, ContentForUploadInfo contentInfo, Poll poll, Location location) { List <VkNet.Model.Attachments.MediaAttachment> attList = new List <VkNet.Model.Attachments.MediaAttachment>(); // добавление опроса в аттач var polls = _api.PollsCategory.Create( new PollsCreateParams { Question = poll.Question, AddAnswers = poll.Answers, OwnerId = -groupid }); attList.Add(polls); // загрузка картинки if (contentInfo.IsPhoto()) { var uploadServer = _api.Photo.GetWallUploadServer(groupid); var wc = new WebClient(); var responseFile = Encoding.ASCII.GetString(wc.UploadFile(uploadServer.UploadUrl, contentInfo.FullName)); if (location != null) { var jsonResponseFile = JsonConvert.DeserializeObject <dynamic>(responseFile); VkNet.Utils.VkParameters param = new VkNet.Utils.VkParameters { { "group_id", groupid }, { "photo", jsonResponseFile["photo"] }, { "server", jsonResponseFile["server"] }, { "hash", jsonResponseFile["hash"] }, { "latitude", location.Latitude }, { "longitude", location.Longitude }, }; var saveWallPhotoResponse = _api.Call("photos.saveWallPhoto", param); var jsonSaveWallPhotoResponse = JsonConvert.DeserializeObject <dynamic>(saveWallPhotoResponse.RawJson)["response"][0]; VkNet.Model.Attachments.Photo photo = new VkNet.Model.Attachments.Photo() { Id = jsonSaveWallPhotoResponse["id"], OwnerId = jsonSaveWallPhotoResponse["owner_id"], AccessKey = jsonSaveWallPhotoResponse["access_key"] }; List <PhotoSize> psLst = new List <PhotoSize>(); foreach (var photoSize in jsonSaveWallPhotoResponse["sizes"]) { PhotoSize ps = new PhotoSize() { Type = _getPhotoSizeType(photoSize.type.ToString()), Height = photoSize.height, Url = photoSize.url, Width = photoSize.width, }; psLst.Add(ps); } photo.Sizes = new System.Collections.ObjectModel.ReadOnlyCollection <PhotoSize>(psLst); photo.Latitude = location.Latitude; photo.Longitude = location.Longitude; attList.Add(photo); } else { System.Collections.ObjectModel.ReadOnlyCollection <VkNet.Model.Attachments.Photo> photos = _api.Photo.SaveWallPhoto(responseFile, null, (ulong)groupid); foreach (var element in photos) { attList.Add(element); } } } // загрузка видео if (contentInfo.IsVideo()) { var video = _api.Video.Save(new VkNet.Model.RequestParams.VideoSaveParams { IsPrivate = false, Repeat = false, Description = hashtags, Name = contentInfo.Name }); var wc = new WebClient(); var responseFile = Encoding.ASCII.GetString(wc.UploadFile(video.UploadUrl, contentInfo.FullName)); attList.Add(video); } var postParams = new WallPostParams() { OwnerId = -groupid, Message = hashtags, PublishDate = postDate, Attachments = attList }; if (location != null) { postParams.Long = location.Longitude; postParams.Lat = location.Latitude; } _api.Wall.Post(postParams); }