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)); }
public List <long> GetUsersWhoLiked(long ownerId, long itemId, LikeObjectType type, VkApi api) { uint? step = 1000; uint? offset = 0; ulong totalCount; var result = new List <long>(); do { var param = new LikesGetListParams { OwnerId = ownerId, Count = step, Type = type, ItemId = itemId, Extended = true, Offset = offset }; var likerChunk = api.Likes.GetList(param);//5000 тыщ запросов в день offset += step; totalCount = likerChunk.TotalCount; result.AddRange(likerChunk.ToList()); } while (offset < totalCount); System.Threading.Thread.Sleep(TimeSpan.FromSeconds(.10)); return(result); }
/// <summary> /// Получает список идентификаторов пользователей или сообществ, которые добавили /// заданный объект в свой список Мне /// нравится. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <param name="skipAuthorization"> Если <c> true </c>, то пропустить авторизацию </param> /// <returns> /// Возвращает список идентификаторов пользователей или сообществ, которые добавили /// заданный объект в свой список Мне /// нравится. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/likes.getList /// </remarks> public VkCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = false) { @params.Extended = false; return(_vk.Call(methodName: "likes.getList", parameters: @params, skipAuthorization: skipAuthorization) .ToVkCollectionOf <long>(selector: x => x)); }
void SaveLikesFromPostToFile(long GroupID, long PostID, FileStream fstream) { int AllLikesCount = 0; WallGetParams wallParam = new WallGetParams(); wallParam.OwnerId = GroupID; wallParam.Count = maxPostFromVkDatabase; WallGetObject wallObjects = vkApi.Wall.Get(wallParam); foreach (var post_it in wallObjects.WallPosts) { AllLikesCount = post_it.Likes.Count; if (post_it.Id != PostID) { continue; } LikesGetListParams likeParams = new LikesGetListParams(); likeParams.Type = LikeObjectType.Post; likeParams.ItemId = PostID; likeParams.Extended = true; likeParams.OwnerId = GroupID; likeParams.Count = 1000; uint i = 0; while (AllLikesCount > 0) // выбираем по 1000 id(максимум) { VkCollection <long> likes = vkApi.Likes.GetList(likeParams); foreach (var itLike in likes) { PrintFoFile(fstream, itLike.ToString()); //запись каждого id в файл } AllLikesCount -= (int)maxSingleOffser; i++; likeParams.Offset = i * maxSingleOffser; // увеличиваем каждый раз смещение Thread.Sleep(300); // чтобы избежать "Too many requests per second } Console.WriteLine(post_it.Likes.Count); Console.WriteLine(AllLikesCount); ; } }
SortedSet <long> SaveUsersIDFromPostToList(long GroupID, long PostID) { SortedSet <long> UsersID = new SortedSet <long>(); int AllLikesCount = 0; WallGetParams wallParam = new WallGetParams(); wallParam.OwnerId = GroupID; wallParam.Count = maxPostFromVkDatabase; WallGetObject wallObjects = vkApi.Wall.Get(wallParam); foreach (var post_it in wallObjects.WallPosts) { AllLikesCount = post_it.Likes.Count; if (post_it.Id != PostID) { continue; } LikesGetListParams likeParams = new LikesGetListParams(); likeParams.Type = LikeObjectType.Post; likeParams.ItemId = PostID; likeParams.Extended = true; likeParams.OwnerId = GroupID; likeParams.Count = 1000; uint i = 0; while (AllLikesCount > 0) // выбираем по 1000 id(максимум) { VkCollection <long> likes = vkApi.Likes.GetList(likeParams); foreach (var itLike in likes) { UsersID.Add(itLike); } AllLikesCount -= (int)maxSingleOffser; i++; likeParams.Offset = i * maxSingleOffser; // увеличиваем каждый раз смещение Thread.Sleep(300); // чтобы избежать "Too many requests per second } } return(UsersID); }
public UserOrGroup GetListEx(LikesGetListParams @params) { @params.Extended = true; return(_vk.Call("likes.getList", @params, true)); }
public VkCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = true) { @params.Extended = false; return(_vk.Call("likes.getList", @params, skipAuthorization).ToVkCollectionOf <long>(x => x)); }
/// <inheritdoc /> public Task <UserOrGroup> GetListExAsync(LikesGetListParams @params) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetListEx(@params: @params))); }
/// <inheritdoc /> public Task <VkCollection <long> > GetListAsync(LikesGetListParams @params, bool skipAuthorization = false) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetList(@params: @params, skipAuthorization: skipAuthorization))); }
/// <summary> /// Получает список идентификаторов пользователей или сообществ, которые добавили /// заданный объект в свой список Мне /// нравится. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <returns> /// Возвращает список пользователей и сообществ, которые добавили заданный объект в /// свой список Мне нравится. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/likes.getList /// </remarks> public UserOrGroup GetListEx(LikesGetListParams @params) { @params.Extended = true; return(_vk.Call(methodName: "likes.getList", parameters: @params, skipAuthorization: true)); }
public ReadOnlyCollection <long> GetList(LikesGetListParams @params) { VkResponseArray response = _vk.Call("likes.getList", @params); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
/// <inheritdoc /> public async Task <UserOrGroup> GetListExAsync(LikesGetListParams @params) { return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Likes.GetListEx(@params))); }
/// <inheritdoc /> public async Task <VkCollection <long> > GetListAsync(LikesGetListParams @params, bool skipAuthorization = false) { return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Likes.GetList(@params, skipAuthorization))); }