static void Main(string[] args) { int appID = 5293954; //id приложения, который выдается при регистрации приложения в ВК string login = "******";// логин и пороль пользователя string password = "******"; // в целях безопасности моей страницы в ВК, пороль не настоящий Settings scope = Settings.Groups; var vk = new VkApi(); vk.Authorize(appID, login, password, scope); // авторизация --> documentation https://vknet.github.io/vk/authorize/ int outCount; Group embassyUSA = vk.Groups.Search("Посольство США в Беларуси", out outCount).First();// получаем данные о группе PhotoGetAlbumsParams param = new PhotoGetAlbumsParams(); param.OwnerId = embassyUSA.Id * (-1); // индентификатор группы, для полуния ее альбомов (умножен на -1, так как cказано в документации API -> https://vknet.github.io/vk/photos/getAlbums/) param.Count = 7; int count = 0; var albums = vk.Photo.GetAlbums(out count, param);// получаем все альбомы var selfieAlbum = albums.Where(x => x.Title == "Selfie Contest").First(); // выбираем альбом по названию, в котором фото учасников PhotoGetParams photoParam = new PhotoGetParams(); photoParam.OwnerId = embassyUSA.Id * (-1); // индентификатор группы, для полуния ее альбомов (умножен на -1, так как cказано в документации API -> https://vknet.github.io/vk/photos/get/) photoParam.AlbumId = PhotoAlbumType.Id(selfieAlbum.Id); // тут указываем, индентификатор альбома, фотографии которого нам нужны photoParam.Extended = true; photoParam.Count = 82; var selfiePhotos = vk.Photo.Get(out count, photoParam);// получаем список фотографий int number = 1;// счетчик номера фотографии foreach (var photo in selfiePhotos)//перебираем фотографии по одной, начиная с первой { LikesGetListParams listParam = new LikesGetListParams(); listParam.Count = 500; listParam.ItemId = photo.Id.Value; //берем индентификатор текущей фотографии listParam.Type = LikeObjectType.Photo; listParam.Filter = LikesFilter.Likes; // говорим, что хотим получить информацию о лайках пользователей listParam.OwnerId = embassyUSA.Id * (-1); // указываем индентификатор владельца фотографи, т. е. вашей группы var users = vk.Likes.GetList(listParam); // получаем список пользователей лайкнувших данную фотографию --> documentation https://vknet.github.io/vk/likes/getList/ int inGroup = 0; // счетчик для количества, лайкнувших текущую фотографию, пользователей, которые состоят в группе. foreach (var id in users)//перебираем пользователей, лайкнувших текущую фотографию, по одному, начиная с первого { Thread.Sleep(400);// приостанавливаем программу на 0.4 секунды, так как есть ограничение на количество запросов к Вконтакте в секунду. if (vk.Groups.IsMember(embassyUSA.Id, id))//проверяем состоит ли текущий пользователь в группе --> documentation https://vknet.github.io/vk/groups/isMember/ { inGroup = inGroup + 1; // если состоит, увеличиваем счетчик на 1 } } Console.WriteLine(String.Format("{0} Likes - {1} InGroup - {2} ", number, users.Count, inGroup)); // Отображаем информациию на консоль. number++; } Console.ReadLine();// Ждем нажатия клавиши интер, после чего приложение(консоль) закрывается. }
public ReadOnlyCollection<long> GetList(LikesGetListParams @params, bool skipAuthorization = true) { @params.Extended = false; VkResponseArray response = _vk.Call("likes.getList", @params, skipAuthorization); return response.ToReadOnlyCollectionOf<long>(x => x); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> internal static VkParameters ToVkParameters(LikesGetListParams p) { var parameters = new VkParameters { { "type", p.Type }, { "owner_id", p.OwnerId }, { "item_id", p.ItemId }, { "page_url", p.PageUrl }, { "filter", p.Filter }, { "friends_only", p.FriendsOnly }, { "extended", true }, { "offset", p.Offset }, { "skip_own", p.SkipOwn } }; if (p.FriendsOnly.HasValue && p.FriendsOnly.Value) { if (p.Count <= 100) { parameters.Add("count", p.Count); } } else { if (p.Count <= 1000) { parameters.Add("count", p.Count); } } return parameters; }
public ReadOnlyCollection<long> GetList(LikesGetListParams @params) { VkResponseArray response = _vk.Call("likes.getList", @params); return response.ToReadOnlyCollectionOf<long>(x => x); }
public UserOrGroup GetListEx(LikesGetListParams @params) { @params.Extended = true; return _vk.Call("likes.getList", @params, true); }
/// <summary> /// Получает список идентификаторов пользователей или сообществ, которые добавили заданный объект в свой список Мне нравится. /// </summary> /// <param name="params">Параметры запроса.</param> /// <param name="skipAuthorization">Если <c>true</c>, то пропустить авторизацию</param> /// <returns> /// Возвращает список идентификаторов пользователей или сообществ, которые добавили заданный объект в свой список Мне нравится. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/likes.getList"/>. /// </remarks> public VkCollection<long> GetList(LikesGetListParams @params, bool skipAuthorization = false) { @params.Extended = false; return _vk.Call("likes.getList", @params, skipAuthorization).ToVkCollectionOf<long>(x => x); }