/// <inheritdoc /> public WallGetObject GetById(IEnumerable <string> posts , bool?extended = null , long?copyHistoryDepth = null , ProfileFields fields = null , bool skipAuthorization = false) { if (posts == null) { throw new ArgumentNullException(paramName: nameof(posts)); } if (!posts.Any()) { throw new ArgumentException(message: "Posts collection was empty.", paramName: nameof(posts)); } var parameters = new VkParameters { { "posts", posts } , { "extended", extended } , { "copy_history_depth", copyHistoryDepth } , { "fields", fields } }; return(_vk.Call(methodName: "wall.getById", parameters: parameters, skipAuthorization: skipAuthorization)); }
public VkCollection <User> GetFollowers(long?userId = null , int?count = null , int?offset = null , ProfileFields fields = null , NameCase nameCase = null , bool skipAuthorization = false) { VkErrors.ThrowIfNumberIsNegative(expr: () => userId); VkErrors.ThrowIfNumberIsNegative(expr: () => count); VkErrors.ThrowIfNumberIsNegative(expr: () => offset); var parameters = new VkParameters { { "user_id", userId } , { "offset", offset } , { "count", count } , { "fields", fields } , { "name_case", nameCase } }; return(_vk.Call(methodName: "users.getFollowers", parameters: parameters, skipAuthorization: skipAuthorization) .ToVkCollectionOf(selector: x => x.ContainsKey(key: "id") ? x : new User { Id = x })); }
public User Get(long userId, ProfileFields fields = null, NameCase nameCase = null, bool skipAuthorization = false) { VkErrors.ThrowIfNumberIsNegative(expr: () => userId); var users = Get(userIds: new[] { userId }, fields: fields, nameCase: nameCase, skipAuthorization: skipAuthorization); return(users.FirstOrDefault()); }
public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("Query can not be null or empty.", "query"); } var parameters = new VkParameters { { "q", query }, { "fields", fields } }; VkResponseArray response = _vk.Call("messages.searchDialogs", parameters); var result = new SearchDialogsResponse(); foreach (var record in response) { string type = record["type"]; if (type == "profile") { result.Users.Add(record); } else if (type == "chat") { result.Chats.Add(record); } // TODO: Add email support. } return(result); }
public List <UserExtended> GetUsersByIds(List <long> userIds, ProfileFields profileFields = null) { if (profileFields == null) { profileFields = ProfileFields.All; } var users = new List <UserExtended>(); const int step = 100; using (var api = _apiFactory.CreateVkApi()) { var count = userIds.Count; for (var offset = 0; offset <= count; offset = offset + step) { var idsChunk = userIds.Skip(offset).Take(step); try { var chunk = api.Users.Get(idsChunk, profileFields).Select(x => x.ToExtendedModel()); users.AddRange(chunk); } catch (Exception e) { Console.WriteLine(e.Message); continue; } Console.Clear(); Console.WriteLine($"Users total count: {users.Count}"); } } return(users); }
public static FoundResult <User> TryGet( this IUsersCategory users, string screenName, ProfileFields fields = null, NameCase nameCase = null, bool skipAuthorization = false) { try { var result = users.Get(new List <string> { screenName }, fields, nameCase, skipAuthorization) .FirstOrDefault(); return(result == null ? FoundResult <User> .Error("Пользователь не найден.") : FoundResult <User> .Success(result)); } catch (InvalidUserIdException e) { return(FoundResult <User> .Error("Неверный ID пользователя", e)); } catch (Exception e) { return(FoundResult <User> .Error($"Неизвестная ошибка. {e.Message}", e)); } }
public ReadOnlyCollection <Chat> GetChat(IEnumerable <long> chatIds, ProfileFields fields = null, NameCase nameCase = null) { var isNoEmpty = chatIds == null || !chatIds.Any(); if (isNoEmpty) { throw new ArgumentException("At least one chat ID must be defined", "chatIds"); } var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; if (chatIds.Count() > 1) { parameters.Add("chat_ids", chatIds); } else { parameters.Add("chat_id", chatIds.ElementAt(0)); } var response = _vk.Call("messages.getChat", parameters); if (chatIds.Count() > 1) { return(response.ToReadOnlyCollectionOf <Chat>(c => c)); } return(new ReadOnlyCollection <Chat>(new List <Chat> { response })); }
public User Get(long userId, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => userId); var users = Get(new[] { userId }, fields, nameCase); return(users.FirstOrDefault()); }
/// <inheritdoc /> public Task <ReadOnlyCollection <Chat> > GetChatAsync(IEnumerable <long> chatIds , ProfileFields fields = null , NameCase nameCase = null) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetChat(chatIds: chatIds, fields: fields, nameCase: nameCase))); }
/// <inheritdoc /> public ReadOnlyCollection <Chat> GetChat(IEnumerable <long> chatIds, ProfileFields fields = null, NameCase nameCase = null) { var isNoEmpty = chatIds == null || !chatIds.Any(); if (isNoEmpty) { throw new ArgumentException(message: "At least one chat ID must be defined", paramName: nameof(chatIds)); } var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; if (chatIds.Count() > 1) { parameters.Add(name: "chat_ids", collection: chatIds); } else { parameters.Add(name: "chat_id", value: chatIds.ElementAt(index: 0)); } var response = _vk.Call(methodName: "messages.getChat", parameters: parameters); return(chatIds.Count() > 1 ? response.ToReadOnlyCollectionOf <Chat>(selector: c => c) : new ReadOnlyCollection <Chat>(list: new List <Chat> { response })); }
/// <inheritdoc /> public Task <ReadOnlyCollection <User> > GetAsync(IEnumerable <string> screenNames , ProfileFields fields = null , NameCase nameCase = null , bool skipAuthorization = false) { return(TypeHelper.TryInvokeMethodAsync(func: () => _vk.Users.Get(screenNames: screenNames, fields: fields, nameCase: nameCase, skipAuthorization: skipAuthorization))); }
public User Get([NotNull] string screenName, ProfileFields fields = null, NameCase nameCase = null, bool skipAuthorization = false) { VkErrors.ThrowIfNullOrEmpty(() => screenName); var users = Get(new[] { screenName }, fields, nameCase, skipAuthorization); return(users.Count > 0 ? users[0] : null); }
/// <inheritdoc /> public async Task <ReadOnlyCollection <User> > GetAsync(IEnumerable <long> userIds , ProfileFields fields = null , NameCase nameCase = null , bool skipAuthorization = false) { return(await TypeHelper.TryInvokeMethodAsync(func : () => _vk.Users.Get(userIds: userIds, fields: fields, nameCase: nameCase, skipAuthorization: skipAuthorization))); }
public User Get([NotNull] string screenName, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNullOrEmpty(() => screenName); ReadOnlyCollection <User> users = Get(new[] { screenName }, fields, nameCase); return(users.Count > 0 ? users[0] : null); }
/// <summary> /// Получает данные для превью чата с приглашением по ссылке. /// </summary> /// <param name="link">Ссылка-приглашение.</param> /// <param name="fields">Список полей профилей, данные о которых нужно получить.</param> /// <returns>Возвращает объект представляющий описание чата</returns> /// <remarks> /// Страница документации ВКонтакте https://vk.com/dev/messages.getChatPreview /// </remarks> public ChatPreview GetChatPreview(string link, ProfileFields fields) { return(_vk.Call("messages.getChatPreview", new VkParameters { { "link", link }, { "fields", fields } })); }
private void FriendsList_SelectedIndexChanged(object sender, EventArgs e) { ProfileFields pf = ProfileFields.FirstName | ProfileFields.LastName | ProfileFields.Photo100 | ProfileFields.Sex | ProfileFields.Nickname | ProfileFields.BirthDate | ProfileFields.City | ProfileFields.Country; var friends = vk.Friends.Get(new FriendsGetParams { UserId = vk.UserId.Value, Fields = pf }); label3.Visible = true; label4.Visible = true; label5.Visible = true; label6.Visible = true; label7.Visible = true; tbSex.Visible = true; tbStatus.Visible = true; tbDate.Visible = true; tbCity.Visible = true; tbCountry.Visible = true; pbFriend.Load(friends[FriendsList.SelectedIndex].Photo100.ToString()); tbSex.Text = friends[FriendsList.SelectedIndex].Sex.ToString(); if (friends[FriendsList.SelectedIndex].Nickname != null) { tbStatus.Text = friends[FriendsList.SelectedIndex].FirstName.ToString() + " " + friends[FriendsList.SelectedIndex].LastName.ToString(); } else { tbStatus.Text = "None"; } if (friends[FriendsList.SelectedIndex].BirthDate != null) { tbDate.Text = friends[FriendsList.SelectedIndex].BirthDate.ToString(); } else { tbDate.Text = "Hidden"; } if (friends[FriendsList.SelectedIndex].City != null) { tbCity.Text = friends[FriendsList.SelectedIndex].City.Title.ToString(); } else { tbCity.Text = "Hidden"; } if (friends[FriendsList.SelectedIndex].Country != null) { tbCountry.Text = friends[FriendsList.SelectedIndex].Country.Title.ToString(); } else { tbCountry.Text = "Hidden"; } }
public ReadOnlyCollection <User> GetByPhones(IEnumerable <string> phones, ProfileFields fields) { var parameters = new VkParameters { { "phones", phones }, { "fields", fields } }; return(_vk.Call("friends.getByPhones", parameters).ToReadOnlyCollectionOf <User>(x => x)); }
public JsonResult RemoveRole(int[] RemoeRoles) { RoleListModel _model = new RoleListModel(); List <Role> _deleted = new List <Role>(); foreach (int RoleID in RemoeRoles) { Role role = Web.Admin.Logic.Collections.Roles.GetBy(RoleID); List <ProfileField> _profileFields = ProfileFields.GetByRole(RoleID); if (Web.Admin.Logic.Collections.Roles.GetMemberCount(role.RoleID) > 0) { role.WasDeleted = false; role.UIMessage = "The role contains members."; role.UIMessageType = UIMessageType.Warning; AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleContainsMembers, role.Name)); } else if (_profileFields.Count > 0) { role.WasDeleted = false; role.UIMessage = "The role has not been deleted. Attached fields: "; foreach (ProfileField profileField in _profileFields) { role.UIMessage += "<u>" + profileField.FieldName + "</u> "; } role.UIMessageType = UIMessageType.Warning; AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleContainsMembers, role.Name)); } else { if (role.IsBuiltIn) { role.WasDeleted = true; role.UIMessage = "The role is built in and can't be deleted."; role.UIMessageType = UIMessageType.Warning; AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleIsBuiltIn, role.Name)); } else if (role.Delete()) { role.WasDeleted = true; role.UIMessage = "The role has been deleted."; role.UIMessageType = UIMessageType.Success; AuditEvent.AppEventSuccess(Profile.Member.Email, String.Format(AuditEvent.RoleDeleted, role.Name)); } } _deleted.Add(role); } _model.Roles = _deleted; return(Json(new { NotifyType = NotifyType.Dialog, Html = this.RenderPartialView(@"_RemoveRolesResult", _model) }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Возвращает расширенную информацию о пользователе /// </summary> /// <param name="accessToken">Токен пользователя</param> /// <param name="profile">Поля профилей, которые необходимо возвратить.</param> /// <param name="cancellationToken"></param> /// <returns> Список объектов с запрошенной информацией о пользователях. </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/users.get /// </remarks> public async Task <User> GetAsync( string accessToken, ProfileFields profile = null, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); var users = await VkAccountManager.Authorize(accessToken : accessToken).Users.GetAsync(userIds: new long[] { }, fields: profile); return(users?.FirstOrDefault()); }
public virtual User GetInfo(VkApi api, ProfileFields fields, NameCase nameCase) { var res = api.Users.Get(new long[] { UserId }, fields, nameCase, true); if (res == null) { return(null); } return(res[0]); }
public SearchDialogsResponse SearchDialogs(string query, ProfileFields fields = null, uint?limit = null) { var parameters = new VkParameters { { "q", query }, { "fields", fields }, { "limit", limit } }; return(_vk.Call(methodName: "messages.searchDialogs", parameters: parameters)); }
public User Get(long userId, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => userId); var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase }, { "user_ids", userId } }; VkResponseArray response = _vk.Call("users.get", parameters, true); return response[0]; }
public VkCollection <User> GetAvailableForCall(ProfileFields fields, NameCase nameCase) { var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; return(_vk.Call("friends.getAvailableForCall", parameters).ToVkCollectionOf(x => fields != null ? new User { Id = x } : x)); }
public override User GetUser(long userId, ProfileFields fields) { if (Exception != null) { throw Exception; } var user = Users.FirstOrDefault(u => u.Id == userId); Assert.NotNull(user); return(user); }
public JsonResult GetEditFieldDialog(int GroupID, int FieldID, int TabIndex) { ProfileField Field = ProfileFields.GetBy(FieldID); ProfileFieldGroupFieldModel _model = new ProfileFieldGroupFieldModel(Field); _model.tabIndex = TabIndex; return(Json(new { Html = this.RenderPartialView(@"_EditField", _model), }, JsonRequestBehavior.AllowGet)); }
public void GetApiUrl_GetProfile_WithFields() { ProfileFields fields = ProfileFields.FirstName | ProfileFields.Domain | ProfileFields.Education; _values.Add("uid", "66748"); _values.Add("fields", fields.ToString().Replace(" ", "")); const string expected = "https://api.vk.com/method/getProfiles?uid=66748&fields=first_name,domain,education&access_token=token"; string output = _vk.GetApiUrl("getProfiles", _values); Assert.That(output, Is.EqualTo(expected)); }
public ReadOnlyCollection<User> Get([NotNull] IEnumerable<long> userIds, ProfileFields fields = null, NameCase nameCase = null) { if (userIds == null) throw new ArgumentNullException("userIds"); var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; parameters.Add("user_ids", userIds); VkResponseArray response = _vk.Call("users.get", parameters); return response.ToReadOnlyCollectionOf<User>(x => x); }
public ReadOnlyCollection <User> GetAvailableForCall(ProfileFields fields, NameCase nameCase) { var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; VkResponseArray result = _vk.Call("friends.getAvailableForCall", parameters); return(result.ToReadOnlyCollectionOf <User>(x => fields != null ? new User { Id = x } : x)); }
static void Main(string[] args) { var services = new ServiceCollection(); services.AddAudioBypass(); var api = new VkApi(services); api.Authorize(new ApiAuthParams { ApplicationId = 7001300, Login = "******", Password = "******", Settings = Settings.All }); //Console.WriteLine(api.Token); ProfileFields fields = ProfileFields.FirstName | ProfileFields.LastName | ProfileFields.Online; var friends = api.Friends.Get(new FriendsGetParams() { Order = FriendsOrder.Name, Fields = fields }); Console.WriteLine("Friends: " + friends.TotalCount); foreach (var friend in friends) { Console.WriteLine(friend.FirstName + " " + friend.LastName + " " + friend.Online); } Console.WriteLine("Send message to..."); var receive = Console.ReadLine(); var result = receive.Split(" "); try { var person = friends.Where(x => x.FirstName == result[0] && x.LastName == result[1]); var randomId = new Random().Next(10000, 32000); Console.WriteLine("Message:"); var message = Console.ReadLine(); var msgid = api.Messages.Send(new MessagesSendParams { UserId = person.First().Id, RandomId = randomId, Message = message }); Console.WriteLine(msgid + " sent"); } catch (NullReferenceException e) { Console.WriteLine("write friend's name correctly"); } }
public ReadOnlyCollection<User> Get(long uid, ProfileFields fields = null, int? count = null, int? offset = null, FriendsOrder order = null, NameCase nameCase = null, int? listId = null) { if(listId != null && listId < 0) throw new ArgumentOutOfRangeException("listId", "listId must be a positive number."); var parameters = new VkParameters { { "user_id", uid }, { "fields", fields }, { "count", count }, { "offset", offset }, { "order", order }, {"list_id", listId} , {"name_case", nameCase}}; var response = _vk.Call("friends.get", parameters); if (fields != null) return response["items"].ToReadOnlyCollectionOf<User>(x => x); return response.ToReadOnlyCollectionOf(id => new User { Id = id }); }
/// <summary> /// Возвращает список идентификаторов друзей пользователя или расширенную /// информацию о друзьях пользователя (при /// использовании параметра fields). /// </summary> /// <param name="accessToken">Токен пользователя</param> /// <param name="count">Количество друзей, которое нужно вернуть. положительное число, по умолчанию 5000</param> /// <param name="profileFields"> /// Список дополнительных полей, которые необходимо вернуть. /// Доступные значения: 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="cancellationToken"></param> /// <returns> /// /// После успешного выполнения возвращает список идентификаторов (id) друзей /// пользователя, если параметр fields не /// использовался. /// При использовании параметра fields возвращает список объектов пользователей, /// но не более 5000. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/friends.get /// </remarks> public async Task <User[]> GetAsync( string accessToken, int count, ProfileFields profileFields = null, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); var friends = await GetFriendsAsync(accessToken : accessToken, count : count, profileFields : profileFields, cancellationToken : cancellationToken); return(friends != null?friends.ToArray() : new User[] { }); }
/// <inheritdoc /> public Task <WallGetObject> GetByIdAsync(IEnumerable <string> posts , bool?extended = null , long?copyHistoryDepth = null , ProfileFields fields = null , bool skipAuthorization = false) { return(TypeHelper.TryInvokeMethodAsync(func: () => GetById(posts: posts , extended: extended , copyHistoryDepth: copyHistoryDepth , fields: fields , skipAuthorization: skipAuthorization))); }
public User Get(long userId, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => userId); var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase }, { "v", _vk.ApiVersion }, { "user_ids", userId } }; VkResponseArray response = _vk.Call("users.get", parameters); return(response[0]); }
public ReadOnlyCollection<User> SearchAdvanced(out int itemsCount, Sex sex, int age_from, ProfileFields fields = null, int count = 20, int offset = 0) { var parameters = new VkParameters { { "q", "" }, { "fields", fields }, { "count", count }, {"sort", 1}, {"country", 1}, {"sex",sex} ,{"age_from", age_from}, {"online", 1}, {"has_photo", 1}}; if (offset > 0) parameters.Add("offset", offset); VkResponseArray response = _vk.Call("users.search", parameters); itemsCount = response[0]; return response.Skip(1).ToReadOnlyCollectionOf<User>(r => r); }
public User Get(int userId, ProfileFields[] fields = null, NameCase nameCase = NameCase.nom) { NameValueCollection qs = new NameValueCollection(); qs["uids"] = userId.ToString(); if (fields != null) qs["fields"] = String.Join(",", from field in fields select field.ToString()); qs["name_case"] = nameCase.ToString(); XmlDocument answer = VkResponse.ExecuteCommand("users.get", qs); XmlNode usersNodes = answer.SelectSingleNode("response/user"); User user = new User(usersNodes); return user; }
public ReadOnlyCollection<User> GetAll(long uid, ProfileFields fields = null, FriendsOrder order = null, NameCase nameCase = null, int? listId = null) { const int count = 50; var i = 0; var result = new List<User>(); do { var currentItems = _friends.Get(uid, fields, count, i * count, order, nameCase, listId); if (currentItems != null) result.AddRange(currentItems); } while (++i * count < (_vk.CountFromLastResponse ?? 0)); return result.ToReadOnlyCollection(); }
public ReadOnlyCollection<User> GetAllFollowers(long? userId = null, ProfileFields fields = null, NameCase nameCase = null) { const int count = 1000; var i = 0; var result = new List<User>(); do { var currentItems = _users.GetFollowers(userId, count, i * count, fields, nameCase); if (currentItems != null) result.AddRange(currentItems); } while (++i * count < (_vk.CountFromLastResponse ?? 0)); return result.ToReadOnlyCollection(); }
public ReadOnlyCollection<User> Search([NotNull] string query, out int itemsCount, ProfileFields fields = null, int count = 20, int offset = 0) { if (string.IsNullOrEmpty(query)) throw new ArgumentException("Query can not be null or empty."); var parameters = new VkParameters { { "q", query }, { "fields", fields }, { "count", count } }; if (offset > 0) parameters.Add("offset", offset); VkResponseArray response = _vk.Call("users.search", parameters); itemsCount = response[0]; return response.Skip(1).ToReadOnlyCollectionOf<User>(r => r); }
public User Get(int userId, ProfileFields field = ProfileFields.all, NameCase nameCase = NameCase.nom) { if (field == ProfileFields.all) { var values = Enum.GetValues(typeof(ProfileFields)); List<ProfileFields> allfields = new List<ProfileFields>(); for (int i = 0; i < values.Length; i++) { if ((ProfileFields)values.GetValue(i) != ProfileFields.all) allfields.Add((ProfileFields)values.GetValue(i)); } return Get(userId, allfields.ToArray(), nameCase); } return Get(userId, new[] { field }, nameCase); }
public ReadOnlyCollection<User> Get(long uid, ProfileFields fields = null, int? count = null, int? offset = null, FriendsOrder order = null, NameCase nameCase = null, int? listId = null) { if (listId != null && listId < 0) throw new ArgumentOutOfRangeException("listId", "listId must be a positive number."); var parameters = new FriendsGetParams { UserId = uid, Count = count, Offset = offset, Fields = fields, NameCase = nameCase, ListId = listId, Order = order }; return Get(parameters).ToReadOnlyCollection(); }
public void FriendsGet(ProfileFields fields) { var wc = new WebClient(); wc.DownloadStringCompleted += delegate(object sender, DownloadStringCompletedEventArgs e) { var ob = JObject.Parse(e.Result); var list = ob["response"].Select(q => new Profile { uid = (int)q["uid"], first_name = (string)q["first_name"], last_name = (string)q["last_name"], online = (int)q["online"] == 1, photo = (string)q["photo"], photo_big = (string)q["photo_big"], photo_medium = (string)q["photo_medium"], sex = q["sex"] != null ? (int)q["sex"] : 0 // и .т.д. }).ToArray(); FriendsGetComplited(list); }; wc.DownloadStringAsync(new Uri(string.Format("https://api.vk.com/method/friends.get?access_token={0}&fields={1}&order=hints", access_token, fields.ToString().Replace(" ", "")))); }
public List<User> Get(List<int> userIds, ProfileFields[] fields = null, NameCase nameCase = NameCase.nom) { List<User> users = new List<User>(); NameValueCollection qs = new NameValueCollection(); qs["uids"] = String.Join(",", from id in userIds select id); if (fields != null) qs["fields"] = String.Join(",", from field in fields select field.ToString()); qs["name_case"] = nameCase.ToString(); XmlDocument answer = VkResponse.ExecuteCommand("users.get", qs); XmlNodeList usersNodes = answer.SelectNodes("response/user"); if (usersNodes != null) foreach (XmlNode user in usersNodes) { users.Add(new User(user)); } return users; }
public async Task<ReadOnlyCollection<User>> GetAsync([NotNull] IEnumerable<string> screenNames, ProfileFields fields = null, NameCase nameCase = null) { if (screenNames == null) throw new ArgumentNullException("screenNames"); var parameters = new VkParameters { { "user_ids", screenNames }, { "fields", fields }, { "name_case", nameCase } }; VkResponseArray response = await _vk.CallAsync("users.get", parameters); return response.ToReadOnlyCollectionOf<User>(x => x); }
/// <summary> /// Позволяет получить список идентификаторов пользователей, доступных для вызова в приложении, используя метод JSAPI callUser. /// Подробнее о схеме вызова из приложений. /// </summary> /// <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. строка, по умолчанию Nom (Строка, по умолчанию Nom).</param> /// <returns> /// После успешного выполнения возвращает список идентификаторов (id) друзей пользователя, доступных для вызова, если параметр fields не использовался. /// При использовании параметра fields возвращает список объектов пользователей. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/friends.getAvailableForCall" />. /// </remarks> public VkCollection<User> GetAvailableForCall(ProfileFields fields, NameCase nameCase) { var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; return _vk.Call("friends.getAvailableForCall", parameters).ToVkCollectionOf(x => fields != null ? new User { Id = x} : x); }
public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null, uint limit = 20) { if (string.IsNullOrEmpty(query)) { throw new ArgumentException("Query can not be null or empty.", "query"); } var parameters = new VkParameters { { "q", query }, { "fields", fields }, { "limit", limit } }; VkResponseArray response = _vk.Call("messages.searchDialogs", parameters); var result = new SearchDialogsResponse(); foreach (var record in response) { string type = record["type"]; switch (type) { case "profile": { result.Users.Add(record); break; } case "chat": { result.Chats.Add(record); break; } case "email": { // TODO: Add email support. continue; } } } return result; }
/// <summary>Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра</summary> /// <param name="uid">идентификатор пользователя, для которого необходимо получить список друзей</param> /// <param name="fields">перечисленные через запятую поля анкет, необходимые для получения</param> /// <param name="name_case">падеж для склонения имени и фамилии пользователя</param> /// <param name="count">количество друзей, которое нужно вернуть</param> /// <param name="offset">смещение, необходимое для выборки определенного подмножества друзей</param> /// <returns>Ответ сервера в XML или JSON формате.</returns> public VKResponseBase Get(int uid, ProfileFields fields, NameCase name_case, System.Int32? count = null, System.Int32? offset = null) { return get(uid, fields, name_case, count, offset, null, null); }
/// <summary> /// Возвращает список друзей пользователя, у которых завалидированные или указанные в профиле телефонные номера входят в заданный список. /// </summary> /// <param name="phones">Список телефонных номеров в формате MSISDN, разделеннных запятыми. Например /// +79219876543,+79111234567 /// Максимальное количество номеров в списке — 1000. список строк, разделенных через запятую (Список строк, разделенных через запятую).</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> /// <returns> /// После успешного выполнения возвращает список объектов пользователей с дополнительным полем phone, в котором содержится номер из списка заданных для поиска номеров. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/friends.getByPhones" />. /// </remarks> public ReadOnlyCollection<User> GetByPhones(IEnumerable<string> phones, ProfileFields fields) { var parameters = new VkParameters { { "phones", phones }, { "fields", fields } }; return _vk.Call("friends.getByPhones", parameters).ToReadOnlyCollectionOf<User>(x => x); }
public SearchDialogsResponse SearchDialogs(string query, ProfileFields fields = null, uint? limit = null) { var parameters = new VkParameters { { "q", query }, { "fields", fields }, { "limit", limit } }; return _vk.Call("messages.searchDialogs", parameters); }
public ReadOnlyCollection<Chat> GetChat(IEnumerable<long> chatIds, ProfileFields fields = null, NameCase nameCase = null) { var isNoEmpty = chatIds == null || !chatIds.Any(); if (isNoEmpty) { throw new ArgumentException("At least one chat ID must be defined", "chatIds"); } var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; if (chatIds.Count() > 1) { parameters.Add("chat_ids", chatIds); } else { parameters.Add("chat_id", chatIds.ElementAt(0)); } var response = _vk.Call("messages.getChat", parameters); if (chatIds.Count() > 1) { return response.ToReadOnlyCollectionOf<Chat>(c => c); } return new ReadOnlyCollection<Chat>(new List<Chat> { response }); }
/// <summary> /// Возвращает информацию о беседе /// </summary> /// <param name="chatId">Идентификатор беседы.</param> /// <param name="fields">Список дополнительных полей профилей, которые необходимо вернуть.</param> /// <param name="nameCase">Падеж для склонения имени и фамилии пользователя. </param> /// <returns> /// После успешного выполнения возварщает список объектов, описывающих беседу (мультидиалог). /// </returns> /// <remarks> /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Messages"/>. /// <a href="http://vk.com/dev/messages.getChat"/>Страница документации ВКонтакте</a> . /// </remarks> public Chat GetChat(long chatId, ProfileFields fields = null, Enums.SafetyEnums.NameCase nameCase = null) { return GetChat(new long[] { chatId }, fields, nameCase).FirstOrDefault(); }
public WallGetObject GetById(IEnumerable<string> posts, bool? extended = null, long? copyHistoryDepth = null, ProfileFields fields = null) { if (posts == null) { throw new ArgumentNullException("posts"); } if (!posts.Any()) { throw new ArgumentException("Posts collection was empty.", "posts"); } var parameters = new VkParameters { { "posts", posts }, { "extended", extended }, { "copy_history_depth", copyHistoryDepth }, { "fields", fields } }; return _vk.Call("wall.getById", parameters); }
public User Get([NotNull] string screenName, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNullOrEmpty(() => screenName); ReadOnlyCollection<User> users = Get(new[] {screenName}, fields, nameCase); return users.Count > 0 ? users[0] : null; }
public ReadOnlyCollection<User> GetFollowers(long? userId = null, int? count = null, int? offset = null, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => userId); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { {"user_id", userId}, {"offset", offset}, {"count", count}, {"fields", fields}, {"name_case", nameCase} }; VkResponseArray response = _vk.Call("users.getFollowers", parameters); // проверка: возвращается массив объектов или только идентификаторы пользователей if (response.Count > 0 && response[0].ContainsKey("id")) { return response.ToReadOnlyCollectionOf<User>(x => x); } return response.ToReadOnlyCollectionOf(x => new User{Id = x}); }
/// <summary>Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра</summary> /// <param name="fields">перечисленные через запятую поля анкет, необходимые для получения</param> /// <param name="name_case">падеж для склонения имени и фамилии пользователя</param> /// <param name="lid">идентификатор списка друзей, полученный методом friends</param> /// <param name="count">количество друзей, которое нужно вернуть</param> /// <param name="offset">смещение, необходимое для выборки определенного подмножества друзей</param> /// <returns>Ответ сервера в XML или JSON формате.</returns> public VKResponseBase Get(ProfileFields fields, NameCase name_case, System.Int64? lid = null, System.Int32? count = null, System.Int32? offset = null) { return get(null, fields, name_case, count, offset, lid, null); }
public User Get(long userId, ProfileFields fields = null, NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(() => userId); var users = Get(new[] {userId}, fields, nameCase); return users.FirstOrDefault(); }
/// <summary>Возвращает список идентификаторов друзей пользователя или расширенную информацию о друзьях пользователя (при использовании параметра</summary> /// <param name="uid">идентификатор пользователя, для которого необходимо получить список друзей</param> /// <param name="fields">перечисленные через запятую поля анкет, необходимые для получения</param> /// <param name="name_case">падеж для склонения имени и фамилии пользователя</param> /// <param name="count">количество друзей, которое нужно вернуть</param> /// <param name="offset">смещение, необходимое для выборки определенного подмножества друзей</param> /// <param name="lid">идентификатор списка друзей, полученный методом friends</param> /// <param name="order">Порядок в котором нужно вернуть список друзей</param> /// <returns>Ответ сервера в XML или JSON формате.</returns> private VKResponseBase get(System.Int64? uid, ProfileFields? fields, NameCase? name_case, System.Int32? count, System.Int32? offset, System.Int64? lid, string order) { manager.AddValueByName("@uid", uid); manager.AddValueByName("@fields", fields); manager.AddValueByName("@name_case", name_case); manager.AddValueByName("@count", count); manager.AddValueByName("@offset", offset); manager.AddValueByName("@lid", lid); manager.AddValueByName("@order", order); return new VKResponseBase(GetResponse("get"), IsXMLResponse); }
public ReadOnlyCollection<User> GetChatUsers(long chatId, ProfileFields fields) { var parameters = new VkParameters { { "chat_id", chatId }, { "fields", fields } }; var response = _vk.Call("messages.getChatUsers", parameters); if (fields != null) return response.ToReadOnlyCollectionOf<User>(x => x); return response.ToReadOnlyCollectionOf(x => new User { Id = (long)x }); }
public SearchDialogsResponse SearchDialogs([NotNull] string query, ProfileFields fields = null) { if (string.IsNullOrEmpty(query)) throw new ArgumentException("Query can not be null or empty.", "query"); var parameters = new VkParameters { { "q", query }, { "fields", fields } }; VkResponseArray response = _vk.Call("messages.searchDialogs", parameters); var result = new SearchDialogsResponse(); foreach (var record in response) { string type = record["type"]; if (type == "profile") result.Users.Add(record); else if (type == "chat") result.Chats.Add(record); // TODO: Add email support. } return result; }
public ReadOnlyCollection<Chat> GetChat(IEnumerable<long> chatIds, ProfileFields fields = null, Enums.SafetyEnums.NameCase nameCase = null) { if (chatIds == null || chatIds.Count<long>() == 0) throw new ArgumentException("At least one chat ID must be defined", "chatIds"); var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase } }; if (chatIds.Count<long>() > 1) { string ids = ""; foreach (long chatId in chatIds) ids += chatId.ToString() + ','; parameters.Add("chat_ids", ids.Remove(ids.Length - 1, 1)); } else parameters.Add("chat_id", chatIds.ElementAt(0)); var response = _vk.Call("messages.getChat", parameters); if (chatIds.Count<long>() > 1) return response.ToReadOnlyCollectionOf<Chat>(c => c); else return new ReadOnlyCollection<Chat>(new List<Chat> { response }); }
public ReadOnlyCollection<User> Get(long uid, ProfileFields fields = null, int? count = null, int? offset = null, FriendsOrder order = null) { var parameters = new VkParameters { { "uid", uid }, { "fields", fields }, { "count", count }, { "offset", offset }, { "order", order } }; var response = _vk.Call("friends.get", parameters); if (fields != null) return response.ToReadOnlyCollectionOf<User>(x => x); return response.ToReadOnlyCollectionOf(id => new User { Id = id }); }