/// <summary> /// Cоздает новый комментарий к видеозаписи. /// </summary> /// <param name="params">Параметры запроса.</param> /// <returns> /// После успешного выполнения возвращает идентификатор созданного комментария. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.createComment /// </remarks> public long CreateComment(VideoCreateCommentParams @params) { VkErrors.ThrowIfNullOrEmpty(() => @params.Message); VkErrors.ThrowIfNumberIsNegative(() => @params.VideoId); return(_vk.Call("video.createComment", @params)); }
public ReadOnlyCollection <Document> Save(string file , string title , string tags = null , long?captchaSid = null , string captchaKey = null) { var file1 = file; VkErrors.ThrowIfNullOrEmpty(expr: () => file1); VkErrors.ThrowIfNullOrEmpty(expr: () => title); var responseJson = JObject.Parse(json: file); file = responseJson[propertyName : "file"].ToString(); var parameters = new VkParameters { { "file", file } , { "title", title } , { "tags", tags } , { "captcha_sid", captchaSid } , { "captcha_key", captchaKey } }; var response = _vk.Call(methodName: "docs.save", parameters: parameters); return(response.ToReadOnlyCollectionOf <Document>(selector: r => r)); }
/// <summary> /// Cоздает новый комментарий к видеозаписи. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <returns> /// После успешного выполнения возвращает идентификатор созданного комментария. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.createComment /// </remarks> public long CreateComment(VideoCreateCommentParams @params) { VkErrors.ThrowIfNullOrEmpty(expr: () => @params.Message); VkErrors.ThrowIfNumberIsNegative(expr: () => @params.VideoId); return(_vk.Call(methodName: "video.createComment", parameters: @params)); }
/// <summary> /// Возвращает список видеозаписей в соответствии с заданным критерием поиска. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <returns> /// После успешного выполнения возвращает список объектов видеозаписей. /// Если в Вашем приложении используется прямая авторизация, возвращается /// дополнительное поле files, содержащее ссылку /// на файл с видео (если ролик размещен на сервере ВКонтакте) или ссылку на /// внешний ресурс (если ролик встроен с /// какого-либо видеохостинга). /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.search /// </remarks> public VkCollection <Video> Search(VideoSearchParams @params) { VkErrors.ThrowIfNullOrEmpty(expr: () => @params.Query); VkErrors.ThrowIfNumberIsNegative(expr: () => @params.Count); VkErrors.ThrowIfNumberIsNegative(expr: () => @params.Offset); return(_vk.Call(methodName: "video.search", parameters: @params).ToVkCollectionOf <Video>(selector: x => x)); }
/// <summary> /// Возвращает список видеозаписей в соответствии с заданным критерием поиска. /// </summary> /// <param name="params">Параметры запроса.</param> /// <returns> /// После успешного выполнения возвращает список объектов видеозаписей. /// Если в Вашем приложении используется прямая авторизация, возвращается дополнительное поле files, содержащее ссылку на файл с видео (если ролик размещен на сервере ВКонтакте) или ссылку на внешний ресурс (если ролик встроен с какого-либо видеохостинга). /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.search /// </remarks> public VkCollection <Video> Search(VideoSearchParams @params) { VkErrors.ThrowIfNullOrEmpty(() => @params.Query); VkErrors.ThrowIfNumberIsNegative(() => @params.Count); VkErrors.ThrowIfNumberIsNegative(() => @params.Offset); return(_vk.Call("video.search", @params).ToVkCollectionOf <Video>(x => x)); }
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); }
public void ThrowIfNullOrEmpty_EmptyString_ThrowException() { string param = string.Empty; var ex = ExceptionAssert.Throws <ArgumentNullException>(() => VkErrors.ThrowIfNullOrEmpty(() => param)); ex.Message.ShouldStartsWith("Value cannot be null").ShouldContains("param"); }
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 void ThrowIfNullOrEmpty_EmptyString_ThrowException() { string param = string.Empty; var ex = This.Action(() => VkErrors.ThrowIfNullOrEmpty(() => param)).Throws <ArgumentNullException>(); ex.Message.ShouldStartsWith("Значение не может быть неопределенным").ShouldContains("param"); }
public void ThrowIfNullOrEmpty_EmptyString_ThrowException() { // TODO На MONO код падает var param = ""; var ex = Assert.Throws <ArgumentNullException>(() => VkErrors.ThrowIfNullOrEmpty(() => param)); StringAssert.StartsWith("Значение не может быть неопределенным", ex.Message); StringAssert.Contains("param", ex.Message); }
public bool SetNameInMenu([NotNull] string name) { VkErrors.ThrowIfNullOrEmpty(() => name); var parameters = new VkParameters { { "name", name } }; return(_vk.Call("account.setNameInMenu", parameters)); }
public void ThrowIfNullOrEmpty_EmptyString_ThrowException() { // TODO На MONO код падает var param = ""; var ex = Assert.Throws <ArgumentNullException>(() => VkErrors.ThrowIfNullOrEmpty(() => param)); StringAssert.StartsWith("Параметр не должен быть равен null", ex.Message); StringAssert.Contains("param", ex.Message); }
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(string screenName) { VkErrors.ThrowIfNullOrEmpty(() => screenName); var parameters = new VkParameters { { "screen_name", screenName } }; return(_vk.Call("utils.resolveScreenName", parameters, true)); }
public VkObject ResolveScreenName(string screenName) { VkErrors.ThrowIfNullOrEmpty(expr: () => screenName); var parameters = new VkParameters { { "screen_name", screenName } }; return(_vk.Call(methodName: "utils.resolveScreenName", parameters: parameters, skipAuthorization: true)); }
/// <summary> /// Устанавливает короткое название приложения (до 17 символов), которое выводится пользователю в левом меню. /// </summary> /// <param name="userId">Идентификатор пользователя. положительное число, по умолчанию идентификатор текущего пользователя, обязательный параметр (Положительное число, по умолчанию идентификатор текущего пользователя, обязательный параметр).</param> /// <param name="name">Короткое название приложения. строка (Строка).</param> /// <returns> /// Возвращает 1 в случае успешной установки короткого названия. /// Если пользователь не установил приложение в левое меню, метод вернет ошибку 148 (Access to the menu of the user denied). Избежать этой ошибки можно с помощью метода account.getAppPermissions. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/account.setNameInMenu /// </remarks> public bool SetNameInMenu(string name, long?userId = null) { VkErrors.ThrowIfNullOrEmpty(() => name); var parameters = new VkParameters { { "name", name }, { "user_id", userId } }; return(_vk.Call("account.setNameInMenu", parameters)); }
public bool UnregisterDevice([NotNull] string token) { VkErrors.ThrowIfNullOrEmpty(() => token); var parameters = new VkParameters { { "token", token } }; return(_vk.Call("account.unregisterDevice", parameters)); }
/// <summary> /// Отписывает устройство от Push уведомлений. /// </summary> /// <param name="deviceId"> /// Уникальный идентификатор устройства. строка, доступен начиная с версии 5.31 /// (Строка, доступен /// начиная с версии 5.31). /// </param> /// <param name="sandbox"> /// Флаг предназначен для iOS устройств. 1 — отписать устройство, использующего /// sandbox сервер для /// отправки push-уведомлений, 0 — отписать устройство, не использующее sandbox /// сервер флаг, может принимать значения 1 /// или 0, по умолчанию 0 (Флаг, может принимать значения 1 или 0, по умолчанию 0). /// </param> /// <returns> /// Возвращает <c> true </c> в случае успешного выполнения метода. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/account.unregisterDevice /// </remarks> public bool UnregisterDevice(string deviceId, bool?sandbox = null) { VkErrors.ThrowIfNullOrEmpty(expr: () => deviceId); var parameters = new VkParameters { { "device_id", deviceId } , { "sandbox", sandbox } }; return(_vk.Call(methodName: "account.unregisterDevice", parameters: parameters)); }
public ReadOnlyCollection<Group> Search([NotNull] string query, out int totalCount, int? offset = null, int? count = null) { VkErrors.ThrowIfNullOrEmpty(() => query); var parameters = new VkParameters { { "q", query }, { "offset", offset }, { "count", count } }; VkResponseArray response = _vk.Call("groups.search", parameters); totalCount = response[0]; return response.Skip(1).ToReadOnlyCollectionOf<Group>(r => r); }
/// <inheritdoc /> public RepostResult Repost(string @object, string message, long?groupId, bool markAsAds) { VkErrors.ThrowIfNullOrEmpty(() => @object); VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "object", @object }, { "message", message }, { "group_id", groupId }, { "mark_as_ads", markAsAds } }; return(_vk.Call("wall.repost", parameters)); }
public bool EditAlbum(string title, long albumId, long?groupId = null) { VkErrors.ThrowIfNullOrEmpty(() => title); var parameters = new VkParameters { { "title", title }, { "group_id", groupId }, { "album_id", albumId } }; return(_vk.Call("audio.editAlbum", parameters)); }
/// <summary> /// Копирует объект на стену пользователя или сообщества. /// </summary> /// <param name="object">Строковый идентификатор объекта, который необходимо разместить на стене, например, wall66748_3675 или wall-1_340364. строка, обязательный параметр (Строка, обязательный параметр).</param> /// <param name="message">Сопроводительный текст, который будет добавлен к записи с объектом. строка (Строка).</param> /// <param name="groupId">Идентификатор сообщества, на стене которого будет размещена запись с объектом. Если не указан, запись будет размещена на стене текущего пользователя. положительное число (Положительное число).</param> /// <param name="ref">Строка (Строка).</param> /// <returns> /// После успешного выполнения возвращает объект со следующими полями: /// /// success /// post_id — идентификатор созданной записи; /// reposts_count — количество репостов объекта с учетом осуществленного; /// likes_count — число отметок «Мне нравится» у объекта. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/wall.repost /// </remarks> public RepostResult Repost(string @object, string message, long? groupId, string @ref) { VkErrors.ThrowIfNullOrEmpty(() => @object); VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "object", @object }, { "message", message }, { "group_id", groupId }, { "ref", @ref } }; return _vk.Call("wall.repost", parameters); }
public bool RegisterDevice([NotNull] string token, string deviceModel, string systemVersion, bool?noText = null, SubscribeFilter subscribe = null) { VkErrors.ThrowIfNullOrEmpty(() => token); var parameters = new AccountRegisterDeviceParams { Token = token, DeviceModel = deviceModel, SystemVersion = systemVersion }; return(RegisterDevice(parameters)); }
/// <summary> /// Отключает push-уведомления на заданный промежуток времени. /// </summary> /// <param name="deviceId"> Идентификатор устройства для сервиса push уведомлений. </param> /// <param name="time"> /// Время в секундах на которое требуется отключить уведомления. (-1 - отключить /// навсегда) /// </param> /// <param name="peerId"> /// Идентификатор чата, для которого следует отключить /// уведомления. /// </param> /// <param name="sound"> /// 1 - включить звук в данном диалоге, 0 - отключить звук (параметр работает /// только если указан в /// peer_id передан идентификатор групповой беседы или пользователя) /// </param> /// <returns> /// Возвращает результат выполнения метода. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/account.setSilenceMode /// </remarks> public bool SetSilenceMode(string deviceId, int?time = null, int?peerId = null, bool?sound = null) { VkErrors.ThrowIfNullOrEmpty(expr: () => deviceId); var parameters = new VkParameters { { "device_id", deviceId } , { "time", time } , { "peer_id", peerId } , { "sound", sound } }; return(_vk.Call(methodName: "account.setSilenceMode", parameters: parameters)); }
public long AddAlbum(string title, long?groupId = null) { VkErrors.ThrowIfNullOrEmpty(() => title); VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "group_id", groupId }, { "title", title } }; var response = _vk.Call("audio.addAlbum", parameters); return(response["album_id"]); }
public long AddList(string name, IEnumerable <long> userIds) { VkErrors.ThrowIfNullOrEmpty(() => name); var parameters = new VkParameters { { "name", name }, { "user_ids", userIds } }; var response = _vk.Call("friends.addList", parameters); return(response["list_id"]); }
/// <summary> /// Изменяет текст комментария к видеозаписи. /// </summary> /// <param name="ownerId">Идентификатор пользователя или сообщества, которому принадлежит видеозапись. Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1) целое число, по умолчанию идентификатор текущего пользователя (Целое число, по умолчанию идентификатор текущего пользователя).</param> /// <param name="commentId">Идентификатор комментария. целое число, обязательный параметр (Целое число, обязательный параметр).</param> /// <param name="message">Новый текст комментария (является обязательным, если не задан параметр attachments). строка (Строка).</param> /// <param name="attachments">Новый список объектов, приложенных к комментарию и разделённых символом ",". Поле attachments представляется в формате: /// <type><owner_id>_<media_id>,<type><owner_id>_<media_id> /// <type> — тип медиа-вложения: /// photo — фотография /// video — видеозапись /// audio — аудиозапись /// doc — документ /// <owner_id> — идентификатор владельца медиа-вложения /// <media_id> — идентификатор медиа-вложения. /// /// Например: /// photo100172_166443618,photo66748_265827614 /// Параметр является обязательным, если не задан параметр message. список строк, разделенных через запятую (Список строк, разделенных через запятую).</param> /// <returns> /// После успешного выполнения возвращает <c>true</c>. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.editComment /// </remarks> public bool EditComment(long commentId, string message, long?ownerId = null, IEnumerable <MediaAttachment> attachments = null) { VkErrors.ThrowIfNullOrEmpty(() => message); VkErrors.ThrowIfNumberIsNegative(() => commentId); var parameters = new VkParameters { { "owner_id", ownerId }, { "comment_id", commentId }, { "message", message }, { "attachments", attachments } }; return(_vk.Call("video.editComment", parameters)); }
public ReadOnlyCollection <long> SetBroadcast(string audio, IEnumerable <long> targetIds) { VkErrors.ThrowIfNullOrEmpty(() => audio); var parameters = new VkParameters { { "audio", audio }, { "target_ids", targetIds } }; VkResponseArray response = _vk.Call("audio.setBroadcast", parameters); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
public bool RegisterDevice([NotNull] string token, string deviceModel, string systemVersion, bool?noText = null, SubscribeFilter subscribe = null) { VkErrors.ThrowIfNullOrEmpty(() => token); var parameters = new VkParameters { { "token", token }, { "device_model", deviceModel }, { "system_version", systemVersion }, { "no_text", noText }, { "subscribe", subscribe } }; return(_vk.Call("account.registerDevice", parameters)); }
/// <summary> /// Редактирует название альбома видеозаписей. /// </summary> /// <param name="groupId">Идентификатор сообщества (если нужно отредактировать альбом, принадлежащий сообществу). положительное число (Положительное число).</param> /// <param name="albumId">Идентификатор альбома. положительное число, обязательный параметр (Положительное число, обязательный параметр).</param> /// <param name="title">Новое название для альбома. строка, обязательный параметр (Строка, обязательный параметр).</param> /// <param name="privacy">Уровень доступа к альбому в специальном формате. /// Приватность доступна для альбомов с видео в профиле пользователя. целое число (Целое число).</param> /// <returns> /// После успешного выполнения возвращает <c>true</c>. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/video.editAlbum /// </remarks> public bool EditAlbum(long albumId, string title, long?groupId = null, Privacy privacy = null) { VkErrors.ThrowIfNullOrEmpty(() => title); VkErrors.ThrowIfNumberIsNegative(() => albumId); VkErrors.ThrowIfNumberIsNegative(() => groupId); var parameters = new VkParameters { { "group_id", groupId }, { "album_id", albumId }, { "title", title }, { "privacy", privacy } }; return(_vk.Call("video.editAlbum", parameters)); }