public ReadOnlyCollection<Message> Get( MessageType type, out int totalCount, int? count = null, int? offset = null, DateTime? timeOffset = null, MessagesFilter? filter = null, int? previewLength = null, long? lastMessageId = null) { VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); VkErrors.ThrowIfNumberIsNegative(() => previewLength); VkErrors.ThrowIfNumberIsNegative(() => lastMessageId); var parameters = new VkParameters { { "out", type }, { "offset", offset }, { "count", count }, { "time_offset", timeOffset}, { "filters", filter }, { "preview_length", previewLength }, { "last_message_id", lastMessageId } }; VkResponse response = _vk.Call("messages.get", parameters); totalCount = response["count"]; VkResponseArray items = response["items"]; return items.ToReadOnlyCollectionOf<Message>(item => item); }
public bool Leave(long groupId) { var parameters = new VkParameters { { "group_id", groupId } }; return _vk.Call("groups.leave", parameters); }
public bool IsAppUser(long? userId) { var parameters = new VkParameters { { "user_id", userId } }; return _vk.Call("users.isAppUser", parameters); }
public bool AddGroup(ulong groupId) { var parameters = new VkParameters { { "group_id", groupId } }; return _vk.Call("fave.addGroup", parameters); }
public LinkAccessType CheckLink([NotNull] string url) { VkErrors.ThrowIfNullOrEmpty(() => url); var parameters = new VkParameters { {"url", url} }; return _vk.Call("utils.checkLink", parameters, true); }
public VkObject ResolveScreenName([NotNull] string screenName) { VkErrors.ThrowIfNullOrEmpty(() => screenName); var parameters = new VkParameters {{"screen_name", screenName}}; return _vk.Call("utils.resolveScreenName", parameters, true); }
public ReadOnlyCollection<Street> GetStreetsById(params int[] streetIds) { var parameters = new VkParameters(); parameters.Add<int>("street_ids", streetIds); VkResponseArray response = _vk.Call("database.getStreetsById", parameters, true); return response.ToReadOnlyCollectionOf<Street>(x => x); }
public bool ApproveRequest(ulong groupId, ulong userId) { var parameters = new VkParameters { { "group_id", groupId }, { "user_id", userId } }; return _vk.Call("groups.approveRequest", parameters); }
public Lyrics GetLyrics(long lyricsId) { var parameters = new VkParameters { { "lyrics_id", lyricsId } }; return _vk.Call("audio.getLyrics", parameters); }
public long GetCount(long ownerId) { var parameters = new VkParameters { { "owner_id", ownerId } }; return _vk.Call("audio.getCount", parameters); }
public bool Join(long? groupId, bool? notSure = null) { var parameters = new VkParameters { { "group_id", groupId }, { "not_sure", notSure } }; return _vk.Call("groups.join", parameters); }
/// <summary> /// Добавляет пользователя в черный список. /// </summary> /// <param name="userId">Идентификатор пользователя, которого нужно добавить в черный список. положительное число, обязательный параметр (Положительное число, обязательный параметр).</param> /// <returns> /// В случае успеха метод вернет <c>true</c>. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/account.banUser" />. /// </remarks> public bool BanUser(long userId) { VkErrors.ThrowIfNumberIsNegative(() => userId); var parameters = new VkParameters { { "user_id", userId } }; return _vk.Call("account.banUser", parameters); }
public bool AddLink(Url link, string text) { var parameters = new VkParameters { { "link", link.Value }, { "text", text } }; return _vk.Call("fave.addLink", parameters); }
/// <summary> /// Создаёт беседу с несколькими участниками. /// </summary> /// <param name="userIds">Идентификаторы пользователей, которых нужно включить в беседу (мультидиалог).</param> /// <param name="title">Название беседы.</param> /// <returns>После успешного выполнения возвращает идентификатор созданной беседы.</returns> /// <remarks> /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Messages"/>. /// Страница документации ВКонтакте <see href="http://vk.com/dev/messages.createChat"/>. /// </remarks> public long CreateChat(IEnumerable<long> userIds, [NotNull] string title) { if (string.IsNullOrEmpty(title)) throw new ArgumentException("Title can not be empty or null.", "userIds"); var parameters = new VkParameters { { "uids", userIds }, { "title", HttpUtility.UrlEncode(title) } }; return _vk.Call("messages.createChat", parameters); }
public int Add(long owner_id, long doc_id, string access_key = null) { VkErrors.ThrowIfNumberIsNegative(() => owner_id); VkErrors.ThrowIfNumberIsNegative(() => doc_id); var parameters = new VkParameters { { "owner_id", owner_id }, { "doc_id", doc_id }, { "access_key", access_key } }; return _vk.Call("docs.add", parameters); }
public bool DeleteBan(IEnumerable<ulong> userIds, IEnumerable<ulong> groupIds) { var parameters = new VkParameters { { "user_ids", userIds }, { "group_ids", groupIds } }; return _vk.Call("newsfeed.deleteBan", parameters); }
public VkCollection<Market> GetById(IEnumerable<string> itemIds, bool extended = false) { var parameters = new VkParameters { { "item_ids", itemIds }, { "extended", extended } }; return _vk.Call("market.getById", parameters).ToVkCollectionOf<Market>(x => x); }
public Status Get(long userId, long? groupId = null) { var parameters = new VkParameters { { "user_id", userId }, { "group_id", groupId } }; return _vk.Call("status.get", parameters); }
public bool ClearCache(Uri url) { var parameters = new VkParameters { { "url", url } }; return _vk.Call("pages.clearCache", parameters); }
public Link AddLink(ulong groupId, Url link, string text) { var parameters = new VkParameters { { "group_id", groupId }, { "link", link.Value }, { "text", text } }; return _vk.Call("groups.addLink", parameters); }
/// <summary> /// Удаляет запись со стены. /// </summary> /// <param name="ownerId">Идентификатор пользователя или сообщества, на стене которого находится запись. Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1) целое число, по умолчанию идентификатор текущего пользователя (Целое число, по умолчанию идентификатор текущего пользователя).</param> /// <param name="postId">Идентификатор записи на стене. положительное число (Положительное число).</param> /// <returns> /// После успешного выполнения возвращает <c>true</c>. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/wall.delete" />. /// </remarks> public bool Delete(long? ownerId = null, long? postId = null) { VkErrors.ThrowIfNumberIsNegative(() => postId); var parameters = new VkParameters { { "owner_id", ownerId }, { "post_id", postId } }; return _vk.Call("wall.delete", parameters); }
public int Delete(long owner_id, long doc_id) { VkErrors.ThrowIfNumberIsNegative(() => owner_id); VkErrors.ThrowIfNumberIsNegative(() => doc_id); var parameters = new VkParameters { { "owner_id", doc_id }, { "doc_id", doc_id } }; VkResponse response = _vk.Call("docs.delete", parameters); return response; }
/// <summary> /// Подтверждает отметку на фотографии. /// </summary> /// <param name="ownerId">Идентификатор пользователя или сообщества, которому принадлежит фотография. Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1) целое число, по умолчанию идентификатор текущего пользователя (Целое число, по умолчанию идентификатор текущего пользователя).</param> /// <param name="photoId">Идентификатор фотографии. обязательный параметр (Обязательный параметр).</param> /// <param name="tagId">Идентификатор отметки на фотографии. целое число, обязательный параметр (Целое число, обязательный параметр).</param> /// <returns> /// После успешного выполнения возвращает <c>true</c>. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/photos.confirmTag" />. /// </remarks> public bool ConfirmTag(ulong photoId, ulong tagId, long? ownerId = null) { var parameters = new VkParameters { { "owner_id", ownerId }, { "photo_id", photoId }, { "tag_id", tagId } }; return _vk.Call("photos.confirmTag", parameters); }
public ReadOnlyCollection<Country> GetCountries(bool needAll = true, string codes = "", int? count = null, int? offset = null) { VkErrors.ThrowIfNumberIsNegative(() => offset); VkErrors.ThrowIfNumberIsNegative(() => count); var parameters = new VkParameters { { "code", codes }, { "offset", offset }, { "count", count }, { "need_all", needAll } }; VkResponseArray response = _vk.Call("database.getCountries", parameters, true); return response.ToReadOnlyCollectionOf<Country>(x => x); }
public bool CheckPhone(string phone, long clientId, string clientSecret) { var parameters = new VkParameters { { "phone", phone }, { "client_id", clientId }, { "client_secret", clientSecret } }; return _vk.Call("auth.checkPhone", parameters); }
public bool SetNameInMenu([NotNull] string name, long? userId = null) { VkErrors.ThrowIfNullOrEmpty(() => name); var parameters = new VkParameters { { "name", name }, { "user_id", userId} }; return _vk.Call("account.setNameInMenu", parameters); }
/// <summary> /// Устанавливает новый статус текущему пользователю. /// </summary> /// <param name="text"> /// Текст статуса, который необходимо установить текущему пользователю. Если параметр /// равен пустой строке, то статус текущего пользователя будет очищен. /// </param> /// <param name="groupId"> Идентификатор сообщества, в котором будет установлен статус. По умолчанию статус устанавливается текущему пользователю. </param> /// <returns>Возвращает true, если статус был успешно установлен, false в противном случае.</returns> /// <remarks> /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Status"/>. /// Страница документации ВКонтакте <see href="http://vk.com/dev/status.set"/>. /// </remarks> public bool Set(string text, long? groupId = null) { var parameters = new VkParameters { { "text", text }, { "group_id", groupId } }; return _vk.Call("status.set", parameters); }
public VkObject ResolveScreenName([NotNull] string screenName) { VkErrors.ThrowIfNullOrEmpty(() => screenName); var parameters = new VkParameters {{"screen_name", screenName}}; VkResponse response = _vk.Call("utils.resolveScreenName", parameters, true); if (response == null) return null; return response; }
/// <summary> /// Позволяет скопировать фотографию в альбом "Сохраненные фотографии". /// </summary> /// <param name="ownerId">Идентификатор владельца фотографии целое число, обязательный параметр (Целое число, обязательный параметр).</param> /// <param name="photoId">Индентификатор фотографии положительное число, обязательный параметр (Положительное число, обязательный параметр).</param> /// <param name="accessKey">Специальный код доступа для приватных фотографий строка (Строка).</param> /// <returns> /// Возвращает идентификатор созданной фотографии. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/photos.copy" />. /// </remarks> public long Copy(long ownerId, ulong photoId, string accessKey = null) { var parameters = new VkParameters { {"owner_id", ownerId}, {"photo_id", photoId}, {"access_key", accessKey} }; return _vk.Call("photos.copy", parameters); }
/// <summary> /// Проверяет правильность введённого номера. /// </summary> /// <param name="phone">Номер телефона регистрируемого пользователя. строка, обязательный параметр (Строка, обязательный параметр).</param> /// <param name="clientId">Идентификатор Вашего приложения. целое число (Целое число).</param> /// <param name="clientSecret">Секретный ключ приложения, доступный в разделе редактирования приложения. строка, обязательный параметр (Строка, обязательный параметр).</param> /// <param name="authByPhone">Флаг, может принимать значения 1 или 0 (Флаг, может принимать значения 1 или 0).</param> /// <returns> /// В случае, если номер пользователя является правильным, будет возвращён <c>true</c>. /// </returns> /// <remarks> /// Страница документации ВКонтакте <see href="http://vk.com/dev/auth.checkPhone" />. /// </remarks> public bool CheckPhone(string phone, string clientSecret, long? clientId = null, bool? authByPhone = null) { var parameters = new VkParameters { { "phone", phone }, { "client_id", clientId }, { "client_secret", clientSecret }, { "auth_by_phone", authByPhone } }; return _vk.Call("auth.checkPhone", parameters); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> public static VkParameters ToVkParameters(WallGetCommentsParams p) { var parameters = new VkParameters { { "owner_id", p.OwnerId }, { "post_id", p.PostId }, { "need_likes", p.NeedLikes }, { "start_comment_id", p.StartCommentId }, { "offset", p.Offset }, { "count", p.Count }, { "sort", p.Sort }, { "preview_length", p.PreviewLength }, { "extended", p.Extended }, { "fields", p.Fields } }; return(parameters); }
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)); }
public VkCollection <University> GetUniversities(int countryId, int cityId, string query = "", int?count = null, int?offset = null) { VkErrors.ThrowIfNumberIsNegative(() => countryId); VkErrors.ThrowIfNumberIsNegative(() => cityId); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "q", query }, { "country_id", countryId }, { "city_id", cityId }, { "offset", offset }, { "count", count } }; return(_vk.Call("database.getUniversities", parameters, true).ToVkCollectionOf <University>(x => x)); }
public ReadOnlyCollection <Group> GetSubscriptions(long?userId = null, int?count = null, int?offset = null) { VkErrors.ThrowIfNumberIsNegative(() => userId); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "user_id", userId }, { "extended", true }, { "offset", offset }, { "count", count } }; VkResponseArray response = _vk.Call("users.getSubscriptions", parameters); return(response.ToReadOnlyCollectionOf <Group>(x => x)); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> public static VkParameters ToVkParameters(PhotoEditParams p) { var parameters = new VkParameters { { "owner_id", p.OwnerId }, { "photo_id", p.PhotoId }, { "caption", WebUtilityHelper.UrlEncode(p.Caption) }, { "latitude", p.Latitude }, { "longitude", p.Longitude }, { "place_str", p.PlaceStr }, { "foursquare_id", p.FoursquareId }, { "delete_place", p.DeletePlace }, { "captcha_sid", p.CaptchaSid }, { "captcha_key", p.CaptchaKey } }; return(parameters); }
public ReadOnlyCollection <User> Get([NotNull] IEnumerable <long> userIds, ProfileFields fields = null, NameCase nameCase = null, bool skipAuthorization = true) { if (userIds == null) { throw new ArgumentNullException("userIds"); } var parameters = new VkParameters { { "fields", fields }, { "name_case", nameCase }, { "user_ids", userIds } }; VkResponseArray response = _vk.Call("users.get", parameters, skipAuthorization); return(response.ToReadOnlyCollectionOf <User>(x => x)); }
/// <summary> /// Возвращает список аудиозаписей из раздела "Популярное". /// </summary> /// <param name="onlyEng"> /// 1 – возвращать только зарубежные аудиозаписи. 0 – возвращать все аудиозаписи. /// (по умолчанию) /// флаг, может принимать значения 1 или 0 (Флаг, может принимать значения 1 или /// 0). /// </param> /// <param name="genre"> /// Идентификатор жанра из списка жанров. положительное число /// (Положительное число). /// </param> /// <param name="offset"> /// Смещение, необходимое для выборки определенного подмножества аудиозаписей. /// положительное число /// (Положительное число). /// </param> /// <param name="count"> /// Количество возвращаемых аудиозаписей. положительное число, максимальное /// значение 1000, по умолчанию /// 100 (Положительное число, максимальное значение 1000, по умолчанию 100). /// </param> /// <returns> /// После успешного выполнения возвращает список объектов audio. Обратите внимание, /// что ссылки на аудиозаписи привязаны /// к ip адресу. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/audio.getPopular /// </remarks> public ReadOnlyCollection <Audio> GetPopular(bool onlyEng = false, AudioGenre?genre = null, uint?count = null, uint?offset = null) { var parameters = new VkParameters { { "only_eng", onlyEng } , { "genre_id", genre } , { "offset", offset } }; if (count <= 1000) { parameters.Add(name: "count", nullableValue: count); } VkResponseArray response = _vk.Call(methodName: "audio.getPopular", parameters: parameters); return(response.ToReadOnlyCollectionOf <Audio>(selector: x => x)); }
public Audio Save(string response, string artist = null, string title = null) { VkErrors.ThrowIfNullOrEmpty(() => response); var responseJson = JObject.Parse(response); var server = responseJson["server"].ToString(); var hash = responseJson["hash"].ToString(); var audio = responseJson["audio"].ToString(); var parameters = new VkParameters { { "server", server }, { "audio", HttpUtility.UrlEncode(audio) }, { "hash", hash }, { "artist", artist }, { "title", title } }; return(_vk.Call("audio.save", parameters)); }
public async static Task <Models.Music.BlockInfo.Block> GetById(string id, long count = 100, long offset = 0) { var parameters = new VkParameters(); parameters.Add("count", count); parameters.Add("extended", 1); parameters.Add("block_id", id); parameters.Add("https", 1); parameters.Add("start_from", ""); parameters.Add("lang", "ru"); parameters.Add("access_token", StaticContent.VkApi.Token); parameters.Add("v", "5.103"); var json = await StaticContent.VkApi.InvokeAsync("audio.getCatalogBlockById", parameters); var blockModel = JsonConvert.DeserializeObject <Response <Models.Music.BlockInfo.ResponseItem> >(json); return(blockModel.response.Block); }
/// <summary> /// Редактирует запись на стене. /// </summary> /// <param name="postId">Идентификатор записи, которую необходимо отредактировать.</param> /// <param name="ownerId">Идентификатор пользователя или сообщества, на стене которого опубликована запись.</param> /// <param name="friendsOnly">Доступна ли запись только друзьям (по умолчанию - доступна всем).</param> /// <param name="message">Тескт сообщения. Обязательное поле, если список <paramref name="mediaAttachments"/> не задан или пуст.</param> /// <param name="mediaAttachments">Список приложенных к записи объектов. /// Обязательно наличие хотя бы одного элемента в списке, если <paramref name="message"/> не задано. /// Свойства <see cref="MediaAttachment.Id"/> и <see cref="MediaAttachment.OwnerId"/> обязательно должны быть заданы. </param> /// <param name="url">Ссылка на внешнюю страницу. В строке может содержаться только одна ссылка.</param> /// <param name="services">Список сервисов или сайтов, на которые необходимо экспортировать запись, в случае если пользователь настроил соответствующую опцию. /// Например, twitter, facebook</param> /// <param name="signed">Добавляется ли подпись (имя опубликовавшего) к записи в группе, если запись сделана от имени группы.</param> /// <param name="publishDate">Дата публикации записи. Если параметр не указан, отложенная запись будет опубликована. /// Параметр учитывается только при редактировании отложенной записи.</param> /// <param name="lat">Географическая широта отметки, заданная в градусах (от -90 до 90).</param> /// <param name="long">Географическая долгота отметки, заданная в градусах (от -180 до 180).</param> /// <param name="placeId">Идентификатор места, в котором отмечен пользователь (положительное число).</param> /// <returns>Результат выполнения редактирования.</returns> /// <remarks> /// Для вызова этого метода Ваше приложение должно иметь права с битовой маской, содержащей <see cref="Settings.Wall"/>. /// Страница документации ВКонтакте <see href="http://vk.com/dev/wall.edit"/>. /// </remarks> public bool Edit(long postId, long?ownerId = null, bool friendsOnly = false, string message = null, IEnumerable <MediaAttachment> mediaAttachments = null, string url = null, string services = null, bool signed = false, DateTime?publishDate = null, double?lat = null, double? @long = null, long?placeId = null) { if (string.IsNullOrEmpty(message) && (mediaAttachments == null || !mediaAttachments.Any()) && string.IsNullOrEmpty(url)) { throw new ArgumentException("Message and attachments cannot be null or empty at the same time."); } VkErrors.ThrowIfNumberIsNegative(() => placeId); VkErrors.ThrowIfNumberIsNegative(() => postId); if (lat.HasValue && (Math.Abs(lat.Value) > 90)) { throw new ArgumentOutOfRangeException("lat", lat, "lat must be at range from -90 to 90"); } if (@long.HasValue && (Math.Abs(@long.Value) > 180)) { throw new ArgumentOutOfRangeException("long", @long, "long must be at range from -90 to 90"); } var attachments = mediaAttachments.JoinNonEmpty(); if (!string.IsNullOrEmpty(url)) { attachments += (attachments.Length > 0 ? "," : string.Empty) + url; } var parameters = new VkParameters { { "post_id", postId }, { "owner_id", ownerId }, { "friends_only", friendsOnly }, { "message", message }, { "attachments", attachments }, { "services", services }, { "signed", signed }, { "publish_date", publishDate }, { "lat", lat }, { "long", @long }, { "place_id", placeId } }; return(_vk.Call("wall.edit", parameters)); }
/// <inheritdoc /> public ReadOnlyCollection <GroupMember> IsMember(string groupId , long?userId , IEnumerable <long> userIds , bool?extended , bool skipAuthorization = false) { if (userId.HasValue) { if (userIds != null) { if (userIds.Any(predicate: id => id < 1)) { throw new ArgumentException(message: "Идентификатор пользователя должен быть больше 0"); } var tempList = userIds.ToList(); tempList.Add(item: userId.Value); userIds = tempList; } else { if (userId.Value < 1) { throw new ArgumentException(message: "Идентификатор пользователя должен быть больше 0"); } userIds = new List <long> { userId.Value }; } } var parameters = new VkParameters { { "group_id", groupId } , { "user_ids", userIds } , { "extended", Convert.ToInt32(value: extended) } }; var result = _vk.Call(methodName: "groups.isMember", parameters: parameters, skipAuthorization: skipAuthorization); return(result.ToReadOnlyCollectionOf <GroupMember>(selector: x => x)); }
/// <inheritdoc /> public VkCollection <User> GetInvitedUsers(long groupId , long?offset = null , long?count = null , UsersFields fields = null , NameCase nameCase = null) { VkErrors.ThrowIfNumberIsNegative(expr: () => groupId); var parameters = new VkParameters { { "group_id", groupId } , { "offset", offset } , { "count", count } , { "fields", fields } , { "name_case", nameCase } }; return(_vk.Call(methodName: "groups.getInvitedUsers", parameters: parameters).ToVkCollectionOf <User>(selector: x => x)); }
public ReadOnlyCollection <Mention> GetMentions(out int total, long ownerId = 0, ulong?startTime = null, ulong?endTime = null, ulong offset = 0, ulong count = 20) { var parameters = new VkParameters { { "owner_id", ownerId }, { "start_time", startTime }, { "end_time", endTime }, { "offset", offset } }; if (count <= 50) { parameters.Add("count", count); } var response = _vk.Call("newsfeed.getMentions", parameters); total = response["count"]; return(response["items"].ToReadOnlyCollectionOf <Mention>(x => x)); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p"> Параметры. </param> /// <returns> </returns> public static VkParameters ToVkParameters(AppGetCatalogParams p) { var parameters = new VkParameters { { "sort", p.Sort } , { "offset", p.Offset } , { "count", p.Count } , { "platform", p.Platform } , { "extended", p.Extended } , { "return_friends", p.ReturnFriends } , { "fields", p.Fields } , { "name_case", p.NameCase } , { "q", p.Query } , { "genre_id", p.GenreId } , { "filter", p.Filter } }; return(parameters); }
public ReadOnlyCollection <Video> GetUserVideos(long userId, int?count = null, int?offset = null) { // throw new NotImplementedException("Метод некорректно работает на самом сервере вконтакте"); VkErrors.ThrowIfNumberIsNegative(() => userId); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "user_id", userId }, { "count", count }, { "offset", offset } }; VkResponseArray response = _vk.Call("video.getUserVideos", parameters); return(response.ToReadOnlyCollectionOf <Video>(x => x)); }
public VkCollection <City> GetCities(int countryId, int?regionId = null, string query = "", bool?needAll = false, int?count = null, int?offset = null) { VkErrors.ThrowIfNumberIsNegative(() => countryId); VkErrors.ThrowIfNumberIsNegative(() => regionId); VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "country_id", countryId }, { "region_id", regionId }, { "q", query }, { "need_all", needAll }, { "offset", offset }, { "count", count } }; return(_vk.Call("database.getCities", parameters, true).ToVkCollectionOf <City>(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); }
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 <Audio> GetRecommendations(long?userId = null, int?count = null, int?offset = null, bool shuffle = true, string targetAudio = "") { VkErrors.ThrowIfNumberIsNegative(() => userId); VkErrors.ThrowIfNumberIsNegative(() => offset); VkErrors.ThrowIfNumberIsNegative(() => count); var parameters = new VkParameters { { "target_audio", targetAudio }, { "user_id", userId }, { "offset", offset }, { "count", count }, { "shuffle", shuffle } }; VkResponseArray response = _vk.Call("audio.getRecommendations", parameters); return(response.ToReadOnlyCollectionOf <Audio>(x => x)); }
public VkCollection <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 } }; return(_vk.Call("users.getFollowers", parameters).ToVkCollectionOf(x => x.ContainsKey("id") ? x : new User { Id = x })); }
public int GetExtended(long ownerId, out ReadOnlyCollection <Post> wallPosts, out ReadOnlyCollection <User> profiles, out ReadOnlyCollection <Group> groups, int?count = null, int?offset = null, WallFilter filter = WallFilter.All) { VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); if (filter == WallFilter.Suggests && ownerId >= 0) { throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId"); } var parameters = new VkParameters { { "owner_id", ownerId }, { "count", count }, { "offset", offset }, { "filter", filter.ToString().ToLowerInvariant() }, { "extended", 1 } }; var response = _vk.Call("wall.get", parameters); wallPosts = response["items"].ToReadOnlyCollectionOf <Post>(r => r); profiles = response["profiles"].ToReadOnlyCollectionOf <User>(r => r); groups = response["groups"].ToReadOnlyCollectionOf <Group>(r => r); return(response["count"]); }
public VkCollection <Country> GetCountries(bool?needAll = null , IEnumerable <Iso3166> codes = null , int?count = null , int?offset = null) { VkErrors.ThrowIfNumberIsNegative(expr: () => offset); VkErrors.ThrowIfNumberIsNegative(expr: () => count); var parameters = new VkParameters { { "code", codes } , { "offset", offset } , { "count", count } , { "need_all", needAll } }; return(_vk.Call(methodName: "database.getCountries", parameters: parameters, skipAuthorization: true) .ToVkCollectionOf <Country>(selector: x => x)); }
public ReadOnlyCollection <Photo> GetProfile(long?ownerId = null, IEnumerable <long> photoIds = null, bool?rev = null, bool?extended = null, string feedType = null, DateTime?feed = null, bool?photoSizes = null, ulong?count = null, ulong?offset = null) { var parameters = new VkParameters { { "owner_id", ownerId }, { "photo_ids", photoIds }, { "rev", rev }, { "extended", extended }, { "feed_type", feedType }, { "feed", feed }, { "photo_sizes", photoSizes }, { "count", count }, { "offset", offset } }; VkResponseArray response = _vk.Call("photos.getProfile", parameters); return(response.ToReadOnlyCollectionOf <Photo>(x => x)); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> public static VkParameters ToVkParameters(AuthSignupParams p) { var parameters = new VkParameters { { "first_name", p.FirstName }, { "last_name", p.LastName }, { "birthday", p.Birthday }, { "client_id", p.ClientId }, { "client_secret", p.ClientSecret }, { "phone", p.Phone }, { "password", p.Password }, { "test_mode", p.TestMode }, { "voice", p.Voice }, { "sex", p.Sex }, { "sid", p.Sid } }; return(parameters); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p"> Параметры. </param> /// <returns> </returns> public static VkParameters ToVkParameters(PostAdsStealthParams p) { var parameters = new VkParameters { { "owner_id", p.OwnerId } , { "message", p.Message } , { "attachments", p.Attachments } , { "signed", p.Signed } , { "lat", p.Lat } , { "long", p.Long } , { "place_id", p.PlaceId } , { "link_title", p.LinkTitle } , { "link_image", p.LinkImage } , { "guid", p.Guid } , { "link_button", p.LinkButton } }; return(parameters); }
private async Task <AuthorizationResult> BaseAuthAsync() { try { var parameters = new VkParameters { { "grant_type", "password" }, { "client_id", "2274003" }, { "client_secret", "hHbZxrka2uZ6jB1inYsH" }, { "2fa_supported", _apiAuthParams.TwoFactorSupported ?? true }, { "force_sms", _apiAuthParams.ForceSms }, { "username", _apiAuthParams.Login }, { "password", _apiAuthParams.Password }, { "code", _apiAuthParams.Code }, { "scope", "all" }, { "device_id", RandomString.Generate(16) } }; return(await _vkApiInvoker.CallAsync <AuthorizationResult>(new Uri("https://oauth.vk.com/token"), parameters).ConfigureAwait(false)); } catch (VkAuthException exception) { switch (exception.AuthError.Error) { case "need_validation": _logger?.LogDebug("Требуется ввести код двухфакторной авторизации"); if (_apiAuthParams.TwoFactorAuthorization == null) { throw new InvalidOperationException($"Two-factor authorization required, but {nameof(_apiAuthParams.TwoFactorAuthorization)} callback is null. Set {nameof(_apiAuthParams.TwoFactorAuthorization)} callback to handle two-factor authorization."); } var result = _apiAuthParams.TwoFactorAuthorization(); _apiAuthParams.Code = result; return(await BaseAuthAsync().ConfigureAwait(false)); default: throw; } } }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> public static VkParameters ToVkParameters(VideoSaveParams p) { var parameters = new VkParameters { { "name", p.Name }, { "description", p.Description }, { "is_private", p.IsPrivate }, { "wallpost", p.Wallpost }, { "link", p.Link }, { "group_id", p.GroupId }, { "album_id", p.AlbumId }, { "privacy_view", p.PrivacyView }, { "privacy_comment", p.PrivacyComment }, { "no_comments", p.NoComments }, { "repeat", p.Repeat } }; return(parameters); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> public static VkParameters ToVkParameters(VideoSearchParams p) { var parameters = new VkParameters { { "q", p.Query }, { "sort", p.Sort }, { "hd", p.Hd }, { "adult", p.Adult }, { "filters", p.Filters }, { "search_own", p.SearchOwn }, { "offset", p.Offset }, { "longer", p.Longer }, { "shorter", p.Shorter }, { "count", p.Count }, { "extended", p.Extended } }; return(parameters); }
/// <summary> /// Привести к типу VkParameters. /// </summary> /// <param name="p">Параметры.</param> /// <returns></returns> internal static VkParameters ToVkParameters(WallEditParams p) { var parameters = new VkParameters { { "owner_id", p.OwnerId }, { "post_id", p.PostId }, { "friends_only", p.FriendsOnly }, { "message", p.Message }, { "attachments", p.Attachments }, { "services", p.Services }, { "signed", p.Signed }, { "publish_date", p.PublishDate }, { "lat", p.Lat }, { "long", p.Long }, { "place_id", p.PlaceId } }; return(parameters); }
/// <summary> /// Редактирует существующий список друзей текущего пользователя. /// </summary> /// <param name="name"> Название списка друзей. строка (Строка). </param> /// <param name="listId"> /// Идентификатор списка друзей. положительное число, обязательный параметр /// (Положительное число, /// обязательный параметр). /// </param> /// <param name="userIds"> /// Идентификаторы пользователей, включенных в список. список положительных чисел, /// разделенных /// запятыми (Список положительных чисел, разделенных запятыми). /// </param> /// <param name="addUserIds"> /// Идентификаторы пользователей, которых необходимо добавить в список. (в случае /// если не передан /// user_ids) список положительных чисел, разделенных запятыми (Список /// положительных чисел, разделенных запятыми). /// </param> /// <param name="deleteUserIds"> /// Идентификаторы пользователей, которых необходимо изъять из списка. (в случае /// если не /// передан user_ids) список положительных чисел, разделенных запятыми (Список /// положительных чисел, разделенных /// запятыми). /// </param> /// <returns> /// После успешного выполнения возвращает 1. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/friends.editList /// </remarks> public bool EditList(long listId , string name = null , IEnumerable <long> userIds = null , IEnumerable <long> addUserIds = null , IEnumerable <long> deleteUserIds = null) { VkErrors.ThrowIfNumberIsNegative(expr: () => listId); var parameters = new VkParameters { { "name", name } , { "list_id", listId } , { "user_ids", userIds } , { "add_user_ids", addUserIds } , { "delete_user_ids", deleteUserIds } }; return(_vk.Call(methodName: "friends.editList", parameters: parameters)); }