Example #1
0
        private List <UserExtended> GetGroupMembersOneByOne(int startPosition, int endPoition, string groupName, VkApi api, UsersFields fields)
        {
            var usersChunk = new List <User>();

            for (var i = startPosition; i <= endPoition; i++)
            {
                var param = new GroupsGetMembersParams()
                {
                    Offset  = i,
                    GroupId = groupName,
                    Sort    = _getMembersSort,
                    Fields  = fields,
                    Count   = 1
                };
                try
                {
                    var u = api.Groups.GetMembers(param).FirstOrDefault();
                    if (u != null)
                    {
                        usersChunk.Add(u);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            var extendedModels = usersChunk.Select(x => new UserExtended(x)).ToList();

            return(extendedModels);
        }
Example #2
0
        private void button1_Click(object sender, EventArgs e)
        {
            var api = new VkApi();

            // авторизуемся
            try
            {
                api.Authorize(new ApiAuthParams
                {
                    ApplicationId = appId,
                    Login         = login,
                    Password      = pass,
                    Settings      = Settings.All
                });
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка авторизации");
                return;
            }

            //var group = api.Utils.ResolveScreenName("leningradka63"); // получаем id сущности с коротким именем habr

            // получаем данные пользователей из группы, макс. кол-во записей = 1000
            var parameters = new GroupsGetMembersParams();

            parameters.GroupId = "magicstoresamara";
            int signedCount = 0;

            //parameters.GroupId = "antiterror_russia";
            parameters.Fields = UsersFields.City;
            var userIds = api.Groups.GetMembers(parameters);

            Thread.Sleep(340);
            foreach (User id in userIds)
            {
                try
                {
                    if (api.Groups.IsMember("happybabymom", id.Id))
                    {
                        signedCount++;
                    }
                    label1.Text = Convert.ToString(signedCount + " / " + userIds.Count);
                    Thread.Sleep(340);
                    //listBox1.Items.Add(totalCount + " " + id.City.Title + " " + id.Sex);
                }
                catch (Exception) { }
            }
            MessageBox.Show(signedCount + " / " + userIds.Count);

            /*
             * // Информация о группе
             * var groups = api.Groups.GetById("magicstoresamara", GroupsFields.All);
             * listBox1.Items.Add(groups.Contacts.First().UserId);
             * listBox1.Items.Add(groups.Name);
             *
             * // Является ли участником группы
             * label1.Text =  Convert.ToString(api.Groups.IsMember("magicstoresamara", 153355038));
             */
        }
Example #3
0
 /// <inheritdoc />
 public VkCollection <User> GetMembers(GroupsGetMembersParams @params, bool skipAuthorization = false)
 {
     return(_vk.Call(methodName: "groups.getMembers", parameters: @params, skipAuthorization: skipAuthorization)
            .ToVkCollectionOf(selector: x => @params.Fields != null ? x : new User {
         Id = x
     }));
 }
Example #4
0
        public IEnumerable <User> GetGroupMembers(string id, long offset = 0)
        {
            var result  = new List <User>();
            var paramas = new GroupsGetMembersParams()
            {
                GroupId = id,
                Offset  = offset,
                Fields  = UsersFields.All
            };
            var response = _vkApi.Groups.GetMembers(paramas);

            while (response?.Any() ?? false)
            {
                result.AddRange(response.ToList());
                paramas.Offset += 1000;
                try
                {
                    Console.WriteLine(paramas.Offset);
                    response = _vkApi.Groups.GetMembers(paramas);
                }
                catch
                {
                    response = null;
                }
            }

            return(result);
        }
Example #5
0
        public ReadOnlyCollection <User> GetMembers(out int totalCount, GroupsGetMembersParams @params)
        {
            var response = GetMembers(@params);

            totalCount = Convert.ToInt32(response.TotalCount);

            return(response.ToReadOnlyCollection());
        }
Example #6
0
        public async Task <List <User> > GetMembersAsync()
        {
            List <User> result = new List <User>();

            var groupId = Group.Id;

            GroupsGetMembersParams groupMembersCountParams = new GroupsGetMembersParams
            {
                GroupId = groupId.ToString(),
                Fields  = UsersFields.Status | UsersFields.Counters
                          | UsersFields.Sex | UsersFields.City | UsersFields.Country
                          | UsersFields.BirthDate | UsersFields.PhotoMaxOrig | UsersFields.Site
            };

            long communityOffset          = 0;
            bool communityMembersFinished = false;
            long maxCommunityMembersBatch = 1000;

            while (!communityMembersFinished)
            {
                GroupsGetMembersParams communityMembersParams = new GroupsGetMembersParams
                {
                    GroupId = groupId.ToString(),
                    Fields  = UsersFields.Counters,
                    Offset  = communityOffset,
                    Sort    = GroupsSort.IdAsc,
                    Count   = maxCommunityMembersBatch
                };

                List <User> membersBatch;

                try
                {
                    VkCollection <User> vkResult = await Vk.ServiceApi.Groups.GetMembersAsync(communityMembersParams);

                    membersBatch = vkResult.ToList();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Error getting members for community " + groupId + ": " + e);
                    throw;
                }

                if (membersBatch.Count > 0)
                {
                    result.AddRange(membersBatch);
                    communityOffset = result.Count;
                }

                if (membersBatch.Count < maxCommunityMembersBatch)
                {
                    communityMembersFinished = true;
                }
            }

            return(result);
        }
Example #7
0
 public VkParser()
 {
     vkapi   = new VkApi();
     @params = new GroupsGetMembersParams {
         Fields = UsersFields.All
     };
     apiparams = new ApiAuthParams();
     vkapi.SetLanguage(VkNet.Enums.Language.Ua);
 }
Example #8
0
        public ReadOnlyCollection <User> GetMembers(out int totalCount, GroupsGetMembersParams @params)
        {
            var response = _vk.Call("groups.getMembers", @params, true);

            totalCount = response["count"];
            VkResponseArray users = response["items"];

            return(users.ToReadOnlyCollectionOf <User>(x => @params.Fields != null? x : new User {
                Id = x
            }));
        }
Example #9
0
        public ReadOnlyCollection <User> GetMembers(string gid, out int totalCount, uint?count = null, uint?offset = null, GroupsSort sort = null, UsersFields fields = null, GroupsFilters filters = null)
        {
            var parameters = new GroupsGetMembersParams
            {
                Offset  = offset,
                Filter  = filters,
                Fields  = fields,
                Count   = count,
                GroupId = gid,
                Sort    = sort
            };

            return(GetMembers(out totalCount, parameters));
        }
Example #10
0
        public ReadOnlyCollection <User> GetMembers(long gid, out int totalCount, uint?count = null, uint?offset = null, GroupsSort sort = null, UsersFields fields = null, GroupsFilters filters = null)
        {
            VkErrors.ThrowIfNumberIsNegative(() => gid);
            var parameters = new GroupsGetMembersParams
            {
                GroupId = gid.ToString(),
                Count   = count,
                Offset  = offset,
                Sort    = sort,
                Fields  = fields,
                Filter  = filters
            };

            return(GetMembers(out totalCount, parameters));
        }
Example #11
0
        private List <UserExtended> GetGroupMembersOffset(int offset, string groupName, VkApi api, UsersFields fields)
        {
            List <User> usersChunk;
            var         param = new GroupsGetMembersParams()
            {
                Offset  = offset,
                GroupId = groupName,
                Sort    = _getMembersSort,
                Fields  = fields
            };

            usersChunk = api.Groups.GetMembers(param).ToList();

            var model = usersChunk.Select(x => x.ToExtendedModel()).ToList();

            return(model);
        }
Example #12
0
        static void Main(string[] args)
        {
            VkApi api = new VkApi();

            #region скрытый
            ApiAuthParams authParams = new ApiAuthParams();
            authParams.Login         = "******";
            authParams.Password      = "";//не скажу
            authParams.Settings      = Settings.All;
            authParams.ApplicationId = 5963990;
            #endregion
            api.Authorize(authParams);
            if (api.IsAuthorized == false)
            {
                Console.WriteLine("IsAuthorized = false");
                Console.ReadKey();
                Environment.Exit(0);
            }
            else
            {
                Console.WriteLine("IsAuthorized = true");
            }

            GroupsGetMembersParams param = new GroupsGetMembersParams();
            param.GroupId = "itpark32";
            //param.Fields = UsersFields.Nickname| UsersFields.Sex; доп параметры

            long currentCount         = 0;
            VkCollection <User> users = null;
            do
            {
                param.Offset = currentCount;//потому что по 1000 за раз выбирает
                users        = api.Groups.GetMembers(param);
                Console.WriteLine("кол-во людей в группе = {0}", users.TotalCount);
                foreach (User item in users)
                {
                    Console.WriteLine("{0} = {1}", ++currentCount, item.Id);
                }
            } while (currentCount < (long)users.TotalCount);

            Console.ReadKey();
        }
Example #13
0
 public ReadOnlyCollection<User> GetMembers(out int totalCount, GroupsGetMembersParams @params)
 {
     var response = _vk.Call("groups.getMembers", @params, true);
     totalCount = response["count"];
     VkResponseArray users = response["items"];
     return users.ToReadOnlyCollectionOf<User>(x => @params.Fields != null? x : new User {Id = x});
 }
Example #14
0
		public VkCollection<User> GetMembers(GroupsGetMembersParams @params, bool skipAuthorization = true)
		{
			return _vk.Call("groups.getMembers", @params, skipAuthorization).ToVkCollectionOf(x => @params.Fields != null? x : new User {Id = x});
		}
Example #15
0
 /// <inheritdoc />
 public async Task <VkCollection <User> > GetMembersAsync(GroupsGetMembersParams @params,
                                                          bool skipAuthorization = false)
 {
     return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Groups.GetMembers(@params, skipAuthorization)));
 }
Example #16
0
		public ReadOnlyCollection<User> GetMembers(string gid, out int totalCount, uint? count = null, uint? offset = null, GroupsSort sort = null, UsersFields fields = null, GroupsFilters filters = null)
		{
			var parameters = new GroupsGetMembersParams
			{
				Offset = offset,
				Filter = filters,
				Fields = fields,
				Count = count,
				GroupId = gid,
				Sort = sort
			};

			return GetMembers(out totalCount, parameters);
		}
Example #17
0
		public ReadOnlyCollection<User> GetMembers(long gid, out int totalCount, uint? count = null, uint? offset = null, GroupsSort sort = null, UsersFields fields = null, GroupsFilters filters = null)
		{
			VkErrors.ThrowIfNumberIsNegative(() => gid);
			var parameters = new GroupsGetMembersParams
			{
				GroupId = gid.ToString(),
				Count = count,
				Offset = offset,
				Sort = sort,
				Fields = fields,
				Filter = filters
			};

			return GetMembers(out totalCount, parameters);
		}
Example #18
0
 public VkCollection <User> GetMembers(GroupsGetMembersParams @params)
 {
     return(_vk.Call("groups.getMembers", @params, true).ToVkCollectionOf(x => @params.Fields != null? x : new User {
         Id = x
     }));
 }
Example #19
0
 public VkCollection <User> GetMembers(GroupsGetMembersParams @params, bool skipAuthorization = true)
 {
     return(_vk.Call("groups.getMembers", @params, skipAuthorization).ToVkCollectionOf(x => @params.Fields != null? x : new User {
         Id = x
     }));
 }
Example #20
0
 /// <inheritdoc />
 public Task <VkCollection <User> > GetMembersAsync(GroupsGetMembersParams @params, bool skipAuthorization = false)
 {
     return(TypeHelper.TryInvokeMethodAsync(func: () =>
                                            GetMembers(@params: @params, skipAuthorization: skipAuthorization)));
 }