/// <inheritdoc /> public ReadOnlyCollection <User> GetChatUsers(IEnumerable <long> chatIds, UsersFields fields, NameCase nameCase) { var collection = chatIds.ToList(); var parameters = new VkParameters { { "chat_ids", collection }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call(methodName: "messages.getChatUsers", parameters: parameters); var list = new List <User>(); foreach (var chatId in collection) { var chatResponse = response[key : chatId.ToString()]; var users = chatResponse.ToReadOnlyCollectionOf(selector: x => fields != null ? x : new User { Id = (long)x }); foreach (var user in users) { var exist = list.Exists(match: first => first.Id == user.Id); if (!exist) { list.Add(item: user); } } } return(list.ToReadOnlyCollection()); }
/// <inheritdoc /> public async Task <VkCollection <User> > GetSuggestionsAsync(FriendsFilter filter = null, long?count = null, long?offset = null, UsersFields fields = null, NameCase nameCase = null) { return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Friends.GetSuggestions(filter, count, offset, fields, nameCase))); }
public ReadOnlyCollection<User> GetFriendsList(out long totalCount, AppRequestType type, bool? extended = null, long? count = null, long? offset = null, UsersFields fields = null) { var result = GetFriendsList(type, extended, count, offset, fields); totalCount = Convert.ToInt64(result.TotalCount); return result.ToReadOnlyCollection(); }
/// <inheritdoc /> public Task <NewsSuggestions> GetSuggestedSourcesAsync(long?offset = null , long?count = null , bool?shuffle = null , UsersFields fields = null) { return(TypeHelper.TryInvokeMethodAsync(func: () => _vk.NewsFeed.GetSuggestedSources(offset: offset, count: count, shuffle: shuffle, fields: fields))); }
/// <inheritdoc /> public Task <VkCollection <User> > GetInvitedUsersAsync(long groupId , long?offset = null , long?count = null , UsersFields fields = null , NameCase nameCase = null) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetInvitedUsers(groupId: groupId, offset: offset, count: count, fields: fields, nameCase: nameCase))); }
/// <inheritdoc /> public Task <VkCollection <User> > GetSuggestionsAsync(FriendsFilter filter = null , long?count = null , long?offset = null , UsersFields fields = null , NameCase nameCase = null) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetSuggestions(filter: filter, count: count, offset: offset, fields: fields, nameCase: nameCase))); }
/// <summary> /// Создает список друзей, который будет использоваться при отправке пользователем /// приглашений в приложение. /// </summary> /// <param name="type"> Tип создаваемого списка друзей. </param> /// <param name="extended"> /// Параметр, определяющий необходимость возвращать расширенную информацию о /// пользователях. /// 0 — возвращаются только идентификаторы; /// 1 — будут дополнительно возвращены имя и фамилия. флаг, может принимать /// значения 1 или 0, по умолчанию 0 /// Async(Флаг, может принимать значения 1 или 0, по умолчанию 0). /// </param> /// <param name="count"> Количество пользователей в создаваемом списке. </param> /// <param name="offset"> /// Смещение относительно первого пользователя для выборки определенного /// подмножества. /// </param> /// <param name="fields"> /// Список дополнительных полей профилей, которые необходимо вернуть. См. подробное /// описание. /// </param> /// <returns> /// После успешного выполнения возвращает список пользователей. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/apps.getFriendsList /// </remarks> public Task <VkCollection <User> > GetFriendsListAsync(AppRequestType type , bool?extended = null , long?count = null , long?offset = null , UsersFields fields = null) { return(TypeHelper.TryInvokeMethodAsync(func: () => _vk.Apps.GetFriendsList(type: type, extended: extended, count: count, offset: offset))); }
/// <summary> /// Возвращает список пользователей и групп, которые текущий пользователь скрыл из /// ленты новостей. /// </summary> /// <param name="fields"> /// Список дополнительных полей профилей, которые необходимо /// вернуть. /// </param> /// <param name="nameCase"> Падеж для склонения имени и фамилии пользователя. </param> /// <returns> /// Возвращает результат выполнения метода. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/newsfeed.getBanned /// </remarks> public NewsBannedExList GetBannedEx(UsersFields fields = null, NameCase nameCase = null) { var parameters = new VkParameters { { "extended", true } , { "fields", fields } , { "name_case", nameCase } }; return(_vk.Call(methodName: "newsfeed.getBanned", parameters: parameters)); }
public ReadOnlyCollection <User> GetChatUsers(IEnumerable <long> chatIds, UsersFields fields, NameCase nameCase) { var parameters = new VkParameters { { "chat_ids", chatIds }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("messages.getChatUsers", parameters); return(response.ToReadOnlyCollectionOf <User>(x => fields != null ? x : new User { Id = (long)x })); }
/// <summary> /// Возвращает список пользователей, которые были приглашены в группу. /// </summary> /// <param name="groupId">Идентификатор группы, список приглашенных в которую пользователей нужно вернуть. положительное число, обязательный параметр (Положительное число, обязательный параметр).</param> /// <param name="offset">Смещение, необходимое для выборки определённого подмножества пользователей. положительное число (Положительное число).</param> /// <param name="count">Количество пользователей, информацию о которых нужно вернуть. положительное число, по умолчанию 20 (Положительное число, по умолчанию 20).</param> /// <param name="fields">Список дополнительных полей, которые необходимо вернуть. /// Доступные значения: nickname, domain, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список строк, разделенных через запятую (Список строк, разделенных через запятую).</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom. строка (Строка).</param> /// <returns></returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/groups.getInvitedUsers /// </remarks> public VkCollection <User> GetInvitedUsers(long groupId, long?offset = null, long?count = null, UsersFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields }, { "name_case", nameCase } }; return(_vk.Call("groups.getInvitedUsers", parameters).ToVkCollectionOf <User>(x => x)); }
/// <summary> /// Возвращает список профилей пользователей, которые могут быть друзьями текущего /// пользователя. /// </summary> /// <param name="filter"> /// Типы предлагаемых друзей, которые нужно вернуть, /// перечисленные через запятую. /// </param> /// <param name="count"> /// Количество рекомендаций, которое необходимо вернуть. положительное число, /// максимальное значение /// 500, по умолчанию 500 (положительное число, максимальное значение 500, по /// умолчанию 500). /// </param> /// <param name="offset"> /// Смещение, необходимое для выбора определённого подмножества списка. /// положительное число /// (положительное число). /// </param> /// <param name="fields"> /// Список дополнительных полей, которые необходимо вернуть. Доступные значения: /// nickname, /// screen_name, sex, bdate, city, country, timezone, photo_50, photo_100, /// photo_200_orig, has_mobile, contacts, /// education, online, counters, relation, last_seen, status, /// can_write_private_message, can_see_all_posts, can_post, /// universities список строк, разделенных через запятую(список строк, разделенных /// через запятую). /// </param> /// <param name="nameCase"> /// Падеж для склонения имени и фамилии пользователя. Возможные значения: /// именительный – nom, /// родительный – gen, дательный – dat, винительный – acc, творительный – ins, /// предложный – abl. По умолчанию nom. /// строка (строка). /// </param> /// <returns> /// После успешного выполнения возвращает список объектов пользователей с /// дополнительным полем found_with для /// пользователей, найденных через импорт контактов. Для некоторых пользователей, /// которые были найдены давно поле /// found_with может отсутствовать. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/friends.getSuggestions /// </remarks> public VkCollection <User> GetSuggestions(FriendsFilter filter = null , long?count = null , long?offset = null , UsersFields fields = null , NameCase nameCase = null) { var parameters = new VkParameters { { "filter", filter } , { "count", count } , { "offset", offset } , { "fields", fields } , { "name_case", nameCase } }; return(_vk.Call(methodName: "friends.getSuggestions", parameters: parameters).ToVkCollectionOf <User>(selector: x => x)); }
public List <UserExtended> GetGroupMembers(string groupName, UsersFields fields = null, int?count = null) { if (fields == null) { fields = UsersFields.All; } using (var api = _apiFactory.CreateVkApi(true)) { var count2 = count ?? GetGroupMembersCount(groupName, api); var users = new List <UserExtended>(); for (var offset = 0; offset < count2; offset = offset + Step) { var usersChunk = GetGroupMembersOffset(offset, groupName, api, fields); users.AddRange(usersChunk); Console.Write($"\rGot {users.Count} users..."); } Console.WriteLine(); return(users); } }
/// <summary> /// Создает список друзей, который будет использоваться при отправке пользователем /// приглашений в приложение. /// </summary> /// <param name="type"> Tип создаваемого списка друзей. </param> /// <param name="extended"> /// Параметр, определяющий необходимость возвращать расширенную информацию о /// пользователях. /// 0 — возвращаются только идентификаторы; /// 1 — будут дополнительно возвращены имя и фамилия. флаг, может принимать /// значения 1 или 0, по умолчанию 0 (Флаг, /// может принимать значения 1 или 0, по умолчанию 0). /// </param> /// <param name="count"> Количество пользователей в создаваемом списке. </param> /// <param name="offset"> /// Смещение относительно первого пользователя для выборки определенного /// подмножества. /// </param> /// <param name="fields"> /// Список дополнительных полей профилей, которые необходимо вернуть. См. подробное /// описание. /// </param> /// <returns> /// После успешного выполнения возвращает список пользователей. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/apps.getFriendsList /// </remarks> public VkCollection <User> GetFriendsList(AppRequestType type , bool?extended = null , long?count = null , long?offset = null , UsersFields fields = null) { var parameters = new VkParameters { { "extended", extended } , { "offset", offset } , { "type", type } , { "fields", fields } }; if (count <= 5000) { parameters.Add(name: "count", nullableValue: count); } return(_vk.Call(methodName: "apps.getFriendsList", parameters: parameters).ToVkCollectionOf <User>(selector: x => x)); }
public VkBot() { // Authorize Api.Authorize(new ApiAuthParams() { ApplicationId = 5977261, Login = Properties.Settings.Default.VkLogin, Password = Properties.Settings.Default.VkPassword, Settings = Settings.All }); // Get last message // пиздец извращение ? значит, что переменная может быть равна null // как id может быть null - непонятно long?lastId = Api.Messages.Get(new MessagesGetParams() { Out = MessageType.Received, Count = 1 }) .Messages.First() .Id; // А вдруг... if (!lastId.HasValue) { throw new ZeigHeil(); } LongPollServerResponse serv = Api.Messages.GetLongPollServer(true, true); LongPollParams.Pts = serv.Pts; LongPollParams.Ts = serv.Ts; LongPollParams.PreviewLength = 0; LongPollParams.Onlines = false; LongPollParams.EventsLimit = null; UsersFields f = new UsersFields(); LongPollParams.Fields = f; LongPollParams.MsgsLimit = null; LongPollParams.MaxMsgId = lastId; }
public ReadOnlyCollection<User> GetInvitedUsers(long groupId, out int userCount, long? offset = null, long? count = null, UsersFields fields = null, NameCase nameCase = null) { var response = GetInvitedUsers(groupId, offset, count, fields, nameCase); userCount = Convert.ToInt32(response.TotalCount); return response.ToReadOnlyCollection(); }
public ReadOnlyCollection <User> GetInvitedUsers(long groupId, out int userCount, long?offset = null, long?count = null, UsersFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("groups.getInvitedUsers", parameters); userCount = response["count"]; return(response["items"].ToReadOnlyCollectionOf <User>(x => x)); }
public ReadOnlyCollection<User> GetRequests(long groupId, long? offset, long? count, UsersFields fields) { var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields } }; return _vk.Call("groups.getRequests", parameters).ToReadOnlyCollectionOf<User>(x => x); }
public NewsSuggestions GetSuggestedSources(int offset, int count = 20, bool shuffle = false, UsersFields fields = null) { var parameters = new VkParameters { { "offset", offset }, { "shuffle", shuffle }, { "fields", fields } }; if (count <= 1000) { parameters.Add("count", count); } return _vk.Call("newsfeed.getSuggestedSources", parameters); }
public ReadOnlyCollection<User> GetChatUsers(long chatId, UsersFields fields) { return GetChatUsers(new List<long> { chatId }, fields, null); }
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)); }
/// <inheritdoc /> public async Task <VkCollection <User> > GetRequestsAsync(long groupId, long?offset, long?count, UsersFields fields) { return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Groups.GetRequests(groupId, offset, count, fields))); }
/// <summary> /// Возвращает сообщества и пользователей, на которые текущему пользователю рекомендуется подписаться. /// </summary> /// <param name="offset">Отступ, необходимый для выборки определенного подмножества сообществ или пользователей. положительное число (Положительное число).</param> /// <param name="count">Количество сообществ или пользователей, которое необходимо вернуть. положительное число, максимальное значение 1000, по умолчанию 20 (Положительное число, максимальное значение 1000, по умолчанию 20).</param> /// <param name="shuffle">Перемешивать ли возвращаемый список. флаг, может принимать значения 1 или 0 (Флаг, может принимать значения 1 или 0).</param> /// <param name="fields">Список дополнительных полей, которые необходимо вернуть. См. возможные поля для пользователей и сообществ. список слов, разделенных через запятую (Список слов, разделенных через запятую).</param> /// <returns> /// Список объектов пользователей и групп. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/newsfeed.getSuggestedSources" />. /// </remarks> public NewsSuggestions GetSuggestedSources(long? offset = null, long? count = null, bool? shuffle = null, UsersFields fields = null) { var parameters = new VkParameters { { "offset", offset }, { "shuffle", shuffle }, { "fields", fields } }; if (count <= 1000) { parameters.Add("count", count); } return _vk.Call("newsfeed.getSuggestedSources", parameters, false); }
public ReadOnlyCollection<User> GetChatUsers(IEnumerable<long> chatIds, UsersFields fields, NameCase nameCase) { var parameters = new VkParameters { { "chat_ids", chatIds }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("messages.getChatUsers", parameters); return response.ToReadOnlyCollectionOf(x => fields != null ? x : new User { Id = (long)x }); }
/// <summary> /// Возвращает список профилей пользователей, которые могут быть друзьями текущего пользователя. /// </summary> /// <param name="filter">Типы предлагаемых друзей, которые нужно вернуть, перечисленные через запятую.</param> /// <param name="count">Количество рекомендаций, которое необходимо вернуть. положительное число, максимальное значение 500, по умолчанию 500 (положительное число, максимальное значение 500, по умолчанию 500).</param> /// <param name="offset">Смещение, необходимое для выбора определённого подмножества списка. положительное число (положительное число).</param> /// <param name="fields">Список дополнительных полей, которые необходимо вернуть. Доступные значения: nickname, screen_name, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, counters, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список строк, разделенных через запятую(список строк, разделенных через запятую).</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom. строка (строка).</param> /// <returns> /// После успешного выполнения возвращает список объектов пользователей с дополнительным полем found_with для пользователей, найденных через импорт контактов. Для некоторых пользователей, которые были найдены давно поле found_with может отсутствовать. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/friends.getSuggestions" />. /// </remarks> public VkCollection<User> GetSuggestions(FriendsFilter filter = null, long? count = null, long? offset = null, UsersFields fields = null, NameCase nameCase = null) { var parameters = new VkParameters { { "filter", filter }, { "count", count }, { "offset", offset }, { "fields", fields }, { "name_case", nameCase } }; return _vk.Call("friends.getSuggestions", parameters).ToVkCollectionOf<User>(x => x); }
internal object GetLongPollHistory(ulong ts, ulong pts, ulong previewLength = 0, bool onlines = false, UsersFields fields = null, ulong eventsLimit = 1000, ulong msgsLimit = 200, ulong?maxMsgId = null) { var parameters = new VkParameters { { "ts", ts }, { "pts", pts }, { "preview_length", previewLength }, { "onlines", onlines }, { "fields", fields }, { "events_limit", eventsLimit }, { "msgs_limit", msgsLimit }, { "max_msg_id", maxMsgId } }; return(_vk.Call("messages.getLongPollHistory", parameters)); }
public ReadOnlyCollection <User> GetFriendsListEx(out int totalCount, AppRequestType type, int count = 20, int offset = 0, UsersFields fields = null) { var parameters = new VkParameters { { "extended", true }, { "offset", offset }, { "type", type }, { "fields", fields } }; if (count <= 5000) { parameters.Add("count", count); } var result = _vk.Call("apps.getFriendsList", parameters); totalCount = result["count"]; return(result["items"].ToReadOnlyCollectionOf <User>(x => x)); }
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); }
/// <inheritdoc /> public VkCollection <User> GetRequests(long groupId, long?offset, long?count, UsersFields fields) { var parameters = new VkParameters { { "group_id", groupId } , { "offset", offset } , { "count", count } , { "fields", fields } }; return(_vk.Call(methodName: "groups.getRequests", parameters: parameters).ToVkCollectionOf <User>(selector: x => x)); }
public void UsersFieldsTest() { // get test Assert.That(UsersFields.Nickname.ToString(), Is.EqualTo("nickname")); Assert.That(UsersFields.Domain.ToString(), Is.EqualTo("domain")); Assert.That(UsersFields.Sex.ToString(), Is.EqualTo("sex")); Assert.That(UsersFields.BirthDate.ToString(), Is.EqualTo("bdate")); Assert.That(UsersFields.City.ToString(), Is.EqualTo("city")); Assert.That(UsersFields.Country.ToString(), Is.EqualTo("country")); Assert.That(UsersFields.Timezone.ToString(), Is.EqualTo("timezone")); Assert.That(UsersFields.Photo50.ToString(), Is.EqualTo("photo_50")); Assert.That(UsersFields.Photo100.ToString(), Is.EqualTo("photo_100")); Assert.That(UsersFields.Photo200Orig.ToString(), Is.EqualTo("photo_200_orig")); Assert.That(UsersFields.Photo200.ToString(), Is.EqualTo("photo_200")); Assert.That(UsersFields.Photo400Orig.ToString(), Is.EqualTo("photo_400_orig")); Assert.That(UsersFields.PhotoMax.ToString(), Is.EqualTo("photo_max")); Assert.That(UsersFields.PhotoMaxOrig.ToString(), Is.EqualTo("photo_max_orig")); Assert.That(UsersFields.HasMobile.ToString(), Is.EqualTo("has_mobile")); Assert.That(UsersFields.Contacts.ToString(), Is.EqualTo("contacts")); Assert.That(UsersFields.Education.ToString(), Is.EqualTo("education")); Assert.That(UsersFields.Online.ToString(), Is.EqualTo("online")); Assert.That(UsersFields.OnlineMobile.ToString(), Is.EqualTo("online_mobile")); Assert.That(UsersFields.FriendLists.ToString(), Is.EqualTo("lists")); Assert.That(UsersFields.Relation.ToString(), Is.EqualTo("relation")); Assert.That(UsersFields.LastSeen.ToString(), Is.EqualTo("last_seen")); Assert.That(UsersFields.Status.ToString(), Is.EqualTo("status")); Assert.That(UsersFields.CanWritePrivateMessage.ToString(), Is.EqualTo("can_write_private_message")); Assert.That(UsersFields.CanSeeAllPosts.ToString(), Is.EqualTo("can_see_all_posts")); Assert.That(UsersFields.CanPost.ToString(), Is.EqualTo("can_post")); Assert.That(UsersFields.Universities.ToString(), Is.EqualTo("universities")); Assert.That(UsersFields.Connections.ToString(), Is.EqualTo("connections")); Assert.That(UsersFields.Site.ToString(), Is.EqualTo("site")); Assert.That(UsersFields.Schools.ToString(), Is.EqualTo("schools")); Assert.That(UsersFields.CanSeeAudio.ToString(), Is.EqualTo("can_see_audio")); Assert.That(UsersFields.CommonCount.ToString(), Is.EqualTo("common_count")); Assert.That(UsersFields.Relatives.ToString(), Is.EqualTo("relatives")); Assert.That(UsersFields.Counters.ToString(), Is.EqualTo("counters")); Assert.That(UsersFields.All.ToString(), Is.EqualTo("bdate,can_post,can_see_all_posts,can_see_audio,can_write_private_message,city,common_count,connections,contacts,counters,country,domain,education,has_mobile,last_seen,lists,nickname,online,online_mobile,photo_100,photo_200,photo_200_orig,photo_400_orig,photo_50,photo_max,photo_max_orig,relation,relatives,schools,sex,site,status,timezone,universities")); // parse test Assert.That(UsersFields.FromJson("nickname"), Is.EqualTo(UsersFields.Nickname)); Assert.That(UsersFields.FromJson("domain"), Is.EqualTo(UsersFields.Domain)); Assert.That(UsersFields.FromJson("sex"), Is.EqualTo(UsersFields.Sex)); Assert.That(UsersFields.FromJson("bdate"), Is.EqualTo(UsersFields.BirthDate)); Assert.That(UsersFields.FromJson("city"), Is.EqualTo(UsersFields.City)); Assert.That(UsersFields.FromJson("country"), Is.EqualTo(UsersFields.Country)); Assert.That(UsersFields.FromJson("timezone"), Is.EqualTo(UsersFields.Timezone)); Assert.That(UsersFields.FromJson("photo_50"), Is.EqualTo(UsersFields.Photo50)); Assert.That(UsersFields.FromJson("photo_100"), Is.EqualTo(UsersFields.Photo100)); Assert.That(UsersFields.FromJson("photo_200_orig"), Is.EqualTo(UsersFields.Photo200Orig)); Assert.That(UsersFields.FromJson("photo_200"), Is.EqualTo(UsersFields.Photo200)); Assert.That(UsersFields.FromJson("photo_400_orig"), Is.EqualTo(UsersFields.Photo400Orig)); Assert.That(UsersFields.FromJson("photo_max"), Is.EqualTo(UsersFields.PhotoMax)); Assert.That(UsersFields.FromJson("photo_max_orig"), Is.EqualTo(UsersFields.PhotoMaxOrig)); Assert.That(UsersFields.FromJson("has_mobile"), Is.EqualTo(UsersFields.HasMobile)); Assert.That(UsersFields.FromJson("contacts"), Is.EqualTo(UsersFields.Contacts)); Assert.That(UsersFields.FromJson("education"), Is.EqualTo(UsersFields.Education)); Assert.That(UsersFields.FromJson("online"), Is.EqualTo(UsersFields.Online)); Assert.That(UsersFields.FromJson("online_mobile"), Is.EqualTo(UsersFields.OnlineMobile)); Assert.That(UsersFields.FromJson("lists"), Is.EqualTo(UsersFields.FriendLists)); Assert.That(UsersFields.FromJson("relation"), Is.EqualTo(UsersFields.Relation)); Assert.That(UsersFields.FromJson("last_seen"), Is.EqualTo(UsersFields.LastSeen)); Assert.That(UsersFields.FromJson("status"), Is.EqualTo(UsersFields.Status)); Assert.That(UsersFields.FromJson("can_write_private_message"), Is.EqualTo(UsersFields.CanWritePrivateMessage)); Assert.That(UsersFields.FromJson("can_see_all_posts"), Is.EqualTo(UsersFields.CanSeeAllPosts)); Assert.That(UsersFields.FromJson("can_post"), Is.EqualTo(UsersFields.CanPost)); Assert.That(UsersFields.FromJson("universities"), Is.EqualTo(UsersFields.Universities)); Assert.That(UsersFields.FromJson("connections"), Is.EqualTo(UsersFields.Connections)); Assert.That(UsersFields.FromJson("site"), Is.EqualTo(UsersFields.Site)); Assert.That(UsersFields.FromJson("schools"), Is.EqualTo(UsersFields.Schools)); Assert.That(UsersFields.FromJson("can_see_audio"), Is.EqualTo(UsersFields.CanSeeAudio)); Assert.That(UsersFields.FromJson("common_count"), Is.EqualTo(UsersFields.CommonCount)); Assert.That(UsersFields.FromJson("relatives"), Is.EqualTo(UsersFields.Relatives)); Assert.That(UsersFields.FromJson("counters"), Is.EqualTo(UsersFields.Counters)); Assert.That(UsersFields.FromJson("bdate,can_post,can_see_all_posts,can_see_audio,can_write_private_message,city,common_count,connections,contacts,counters,country,domain,education,has_mobile,last_seen,lists,nickname,online,online_mobile,photo_100,photo_200,photo_200_orig,photo_400_orig,photo_50,photo_max,photo_max_orig,relation,relatives,schools,sex,site,status,timezone,universities"), Is.EqualTo(UsersFields.All)); }
public ReadOnlyCollection<User> GetFriendsListEx(out int totalCount, AppRequestType type, int count = 20, int offset = 0, UsersFields fields = null) { var parameters = new VkParameters { { "extended", true }, { "offset", offset }, { "type", type }, { "fields", fields } }; if (count <= 5000) { parameters.Add("count", count); } var result = _vk.Call("apps.getFriendsList", parameters); totalCount = result["count"]; return result["items"].ToReadOnlyCollectionOf<User>(x => x); }
public NewsSuggestions GetSuggestedSources(int offset, int count = 20, bool shuffle = false, UsersFields fields = null) { var parameters = new VkParameters { { "offset", offset }, { "shuffle", shuffle }, { "fields", fields } }; if (count <= 1000) { parameters.Add("count", count); } return(_vk.Call("newsfeed.getSuggestedSources", parameters)); }
/// <summary> /// Позволяет получить список пользователей мультидиалога по его id. /// </summary> /// <param name="chatIds">Идентификаторы бесед. список целых чисел, разделенных запятыми (Список целых чисел, разделенных запятыми).</param> /// <param name="fields">Список дополнительных полей профилей, которые необходимо вернуть. /// Доступные значения: nickname, screen_name, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, counters, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список строк, разделенных через запятую (Список строк, разделенных через запятую).</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя. Возможные значения: именительный – nom, родительный – gen, дательный – dat, винительный – acc, творительный – ins, предложный – abl. По умолчанию nom. строка (Строка).</param> /// <returns> /// После успешного выполнения возвращает список идентификаторов участников беседы. /// Если был задан параметр fields, возвращает список объектов пользователей с дополнительным полем invited_by, содержащим идентификатор пользователя, пригласившего в беседу. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/messages.getChatUsers" />. /// </remarks> public ReadOnlyCollection<User> GetChatUsers(IEnumerable<long> chatIds, UsersFields fields, NameCase nameCase) { var parameters = new VkParameters { { "chat_ids", chatIds }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("messages.getChatUsers", parameters); var list = new List<User>(); foreach ( var chatId in chatIds ) { var chatResponse = response[chatId.ToString()]; var users = chatResponse.ToReadOnlyCollectionOf(x => fields != null ? x : new User { Id = (long) x }); foreach ( var user in users ) { bool exist = list.Exists(first => first.Id == user.Id); if ( !exist ) list.Add(user); } } return list.ToReadOnlyCollection(); }
public ReadOnlyCollection <User> GetFriendsList(out long totalCount, AppRequestType type, bool?extended = null, long?count = null, long?offset = null, UsersFields fields = null) { var result = GetFriendsList(type, extended, count, offset, fields); totalCount = Convert.ToInt64(result.TotalCount); return(result.ToReadOnlyCollection()); }
public ReadOnlyCollection <User> GetChatUsers(long chatId, UsersFields fields) { return(GetChatUsers(new List <long> { chatId }, fields, null)); }
/// <summary> /// Возвращает сообщества и пользователей, на которые текущему пользователю /// рекомендуется подписаться. /// </summary> /// <param name="offset"> /// Отступ, необходимый для выборки определенного подмножества сообществ или /// пользователей. /// положительное число (Положительное число). /// </param> /// <param name="count"> /// Количество сообществ или пользователей, которое необходимо вернуть. /// положительное число, /// максимальное значение 1000, по умолчанию 20 (Положительное число, максимальное /// значение 1000, по умолчанию 20). /// </param> /// <param name="shuffle"> /// Перемешивать ли возвращаемый список. флаг, может принимать значения 1 или 0 /// (Флаг, может /// принимать значения 1 или 0). /// </param> /// <param name="fields"> /// Список дополнительных полей, которые необходимо вернуть. См. возможные поля для /// пользователей и /// сообществ. список слов, разделенных через запятую (Список слов, разделенных /// через запятую). /// </param> /// <returns> /// Список объектов пользователей и групп. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/newsfeed.getSuggestedSources /// </remarks> public NewsSuggestions GetSuggestedSources(long?offset = null, long?count = null, bool?shuffle = null, UsersFields fields = null) { var parameters = new VkParameters { { "offset", offset } , { "shuffle", shuffle } , { "fields", fields } }; if (count <= 1000) { parameters.Add(name: "count", nullableValue: count); } return(_vk.Call(methodName: "newsfeed.getSuggestedSources", parameters: parameters)); }
/// <summary> /// Позволяет искать пользователей ВКонтакте, используя телефонные номера, email-адреса, и идентификаторы пользователей в других сервисах. Найденные пользователи могут быть также в дальнейшем получены методом friends.getSuggestions. /// </summary> /// <param name="contacts">Список контактов, разделенных через запятую. список слов, разделенных через запятую (Список слов, разделенных через запятую).</param> /// <param name="service">Строковой идентификатор сервиса, по контактам которого производится поиск. Может принимать следующие значения: (email, phone, twitter, facebook, odnoklassniki, instagram, google) строка, обязательный параметр (Строка, обязательный параметр).</param> /// <param name="mycontact">Контакт текущего пользователя в заданном сервисе. строка (Строка).</param> /// <param name="returnAll">1 – возвращать также контакты, найденные ранее с использованием этого сервиса, 0 – возвращать только контакты, найденные с использованием поля contacts. флаг, может принимать значения 1 или 0 (Флаг, может принимать значения 1 или 0).</param> /// <param name="fields">Список дополнительных полей, которые необходимо вернуть. /// Доступные значения: nickname, domain, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список слов, разделенных через запятую (Список слов, разделенных через запятую).</param> /// <returns> /// В качестве результата метод возвращает два списка: /// found – список объектов пользователей, расширенных полями contact – контакт, по которому был найден пользователь (не приходит если пользователь был найден при предыдущем использовании метода), request_sent – запрос на добавление в друзья уже был выслан, либо пользователь уже является другом, common_count если этот контакт также был импортирован друзьями или контактами текущего пользователя. Метод также возвращает найденные ранее контакты. /// other – список контактов, которые не были найдены. Объект содержит поля contact и common_count если этот контакт также был импортирован друзьями или контактами текущего пользователя. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/account.lookupContacts" />. /// </remarks> public LookupContactsResult LookupContacts(List<string> contacts, Services service, string mycontact = null, bool? returnAll = null, UsersFields fields = null) { var parameters = new VkParameters { { "contacts", contacts }, { "service", service }, { "mycontact", mycontact }, { "return_all", returnAll }, { "fields", fields } }; return _vk.Call("account.lookupContacts", parameters); }
public NewsBannedExList GetBannedEx(UsersFields fields = null, NameCase nameCase = null) { var parameters = new VkParameters { { "extended", true }, { "fields", fields }, { "name_case", nameCase } }; return _vk.Call("newsfeed.getBanned", parameters); }
/// <summary> /// Создает список друзей, который будет использоваться при отправке пользователем приглашений в приложение. /// </summary> /// <param name="type">Tип создаваемого списка друзей.</param> /// <param name="extended">Параметр, определяющий необходимость возвращать расширенную информацию о пользователях. /// 0 — возвращаются только идентификаторы; /// 1 — будут дополнительно возвращены имя и фамилия. флаг, может принимать значения 1 или 0, по умолчанию 0 (Флаг, может принимать значения 1 или 0, по умолчанию 0).</param> /// <param name="count">Количество пользователей в создаваемом списке.</param> /// <param name="offset">Смещение относительно первого пользователя для выборки определенного подмножества.</param> /// <param name="fields">Список дополнительных полей профилей, которые необходимо вернуть. См. подробное описание.</param> /// <returns> /// После успешного выполнения возвращает список пользователей. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/apps.getFriendsList" />. /// </remarks> public VkCollection<User> GetFriendsList(AppRequestType type, bool? extended = null, long? count = null, long? offset = null, UsersFields fields = null) { var parameters = new VkParameters { { "extended", extended }, { "offset", offset }, { "type", type }, { "fields", fields } }; if (count <= 5000) { parameters.Add("count", count); } return _vk.Call("apps.getFriendsList", parameters).ToVkCollectionOf<User>(x => x); }
public ReadOnlyCollection<User> GetInvitedUsers(long groupId, out int userCount, long? offset = null, long? count = null, UsersFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("groups.getInvitedUsers", parameters); userCount = response["count"]; return response["items"].ToReadOnlyCollectionOf<User>(x => x); }
internal object GetLongPollHistory(ulong ts, ulong pts, ulong previewLength = 0, bool onlines = false, UsersFields fields = null, ulong eventsLimit = 1000, ulong msgsLimit = 200, ulong? maxMsgId = null) { var parameters = new VkParameters { { "ts", ts }, { "pts", pts }, { "preview_length", previewLength }, { "onlines", onlines }, { "fields", fields }, { "events_limit", eventsLimit }, { "msgs_limit", msgsLimit }, { "max_msg_id", maxMsgId } }; return _vk.Call("messages.getLongPollHistory", parameters); }
public ReadOnlyCollection<User> GetFriendsList(out long totalCount, AppRequestType type, bool? extended = null, long? count = null, long? offset = null, UsersFields fields = null) { var parameters = new VkParameters { { "extended", extended }, { "offset", offset }, { "type", type }, { "fields", fields } }; if (count <= 5000) { parameters.Add("count", count); } var result = _vk.Call("apps.getFriendsList", parameters); totalCount = result["count"]; return result["items"].ToReadOnlyCollectionOf<User>(x => fields == null ? new User {Id = x} : x); }
/// <inheritdoc /> public Task <NewsBannedExList> GetBannedExAsync(UsersFields fields = null, NameCase nameCase = null) { return(TypeHelper.TryInvokeMethodAsync(func: () => _vk.NewsFeed.GetBannedEx(fields: fields, nameCase: nameCase))); }
public ReadOnlyCollection <User> GetRequests(long groupId, long?offset, long?count, UsersFields fields) { var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields } }; return(_vk.Call("groups.getRequests", parameters).ToReadOnlyCollectionOf <User>(x => x)); }
/// <inheritdoc /> public Task <ReadOnlyCollection <User> > GetChatUsersAsync(IEnumerable <long> chatIds, UsersFields fields, NameCase nameCase) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetChatUsers(chatIds: chatIds, fields: fields, nameCase: nameCase))); }
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); }
/// <summary> /// Позволяет искать пользователей ВКонтакте, используя телефонные номера, email-адреса, и идентификаторы пользователей в других сервисах. Найденные пользователи могут быть также в дальнейшем получены методом friends.getSuggestions. /// </summary> /// <param name="contacts">Список контактов, разделенных через запятую. список слов, разделенных через запятую (Список слов, разделенных через запятую).</param> /// <param name="service">Строковой идентификатор сервиса, по контактам которого производится поиск. Может принимать следующие значения: (email, phone, twitter, facebook, odnoklassniki, instagram, google) строка, обязательный параметр (Строка, обязательный параметр).</param> /// <param name="mycontact">Контакт текущего пользователя в заданном сервисе. строка (Строка).</param> /// <param name="returnAll">1 – возвращать также контакты, найденные ранее с использованием этого сервиса, 0 – возвращать только контакты, найденные с использованием поля contacts. флаг, может принимать значения 1 или 0 (Флаг, может принимать значения 1 или 0).</param> /// <param name="fields">Список дополнительных полей, которые необходимо вернуть. /// Доступные значения: nickname, domain, sex, bdate, city, country, timezone, photo_50, photo_100, photo_200_orig, has_mobile, contacts, education, online, relation, last_seen, status, can_write_private_message, can_see_all_posts, can_post, universities список слов, разделенных через запятую (Список слов, разделенных через запятую).</param> /// <returns> /// В качестве результата метод возвращает два списка: /// found – список объектов пользователей, расширенных полями contact – контакт, по которому был найден пользователь (не приходит если пользователь был найден при предыдущем использовании метода), request_sent – запрос на добавление в друзья уже был выслан, либо пользователь уже является другом, common_count если этот контакт также был импортирован друзьями или контактами текущего пользователя. Метод также возвращает найденные ранее контакты. /// other – список контактов, которые не были найдены. Объект содержит поля contact и common_count если этот контакт также был импортирован друзьями или контактами текущего пользователя. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/account.lookupContacts" />. /// </remarks> public LookupContactsResult LookupContacts(List <string> contacts, Services service, string mycontact = null, bool?returnAll = null, UsersFields fields = null) { var parameters = new VkParameters { { "contacts", contacts }, { "service", service }, { "mycontact", mycontact }, { "return_all", returnAll }, { "fields", fields } }; return(_vk.Call("account.lookupContacts", parameters)); }
public VkCollection<User> GetInvitedUsers(long groupId, long? offset = null, long? count = null, UsersFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields }, { "name_case", nameCase } }; return _vk.Call("groups.getInvitedUsers", parameters).ToVkCollectionOf<User>(x => x); }
public ReadOnlyCollection <User> GetFriendsList(out long totalCount, AppRequestType type, bool?extended = null, long?count = null, long?offset = null, UsersFields fields = null) { var parameters = new VkParameters { { "extended", extended }, { "offset", offset }, { "type", type }, { "fields", fields } }; if (count <= 5000) { parameters.Add("count", count); } var result = _vk.Call("apps.getFriendsList", parameters); totalCount = result["count"]; return(result["items"].ToReadOnlyCollectionOf <User>(x => fields == null ? new User { Id = x } : x)); }
public ReadOnlyCollection<User> GetInvitedUsers(ulong groupId, out int userCount, uint offset = 0, uint count = 20, UsersFields fields = null, NameCase nameCase = null) { var parameters = new VkParameters { { "group_id", groupId }, { "offset", offset }, { "count", count }, { "fields", fields }, { "name_case", nameCase } }; var response = _vk.Call("groups.getInvitedUsers", parameters); userCount = response["count"]; return response["items"].ToReadOnlyCollectionOf<User>(x => x); }
/// <inheritdoc /> public async Task <VkCollection <User> > GetInvitedUsersAsync(long groupId, long?offset = null, long?count = null, UsersFields fields = null, NameCase nameCase = null) { return(await TypeHelper.TryInvokeMethodAsync(() => _vk.Groups.GetInvitedUsers(groupId, offset, count, fields, nameCase))); }