public ReadOnlyCollection <User> GetList(LikeObjectType type, long?ownerId = null, long?itemId = null, string pageUrl = null, string filter = null, bool?friendsOnly = null, bool?extended = null, long?offset = null, int?count = null) { VkErrors.ThrowIfNumberIsNegative(() => offset); VkErrors.ThrowIfNumberIsNegative(() => count); var parameters = new VkParameters { { "type", type }, { "owner_id", ownerId }, { "item_id", itemId }, { "page_url", pageUrl }, { "filter", filter }, { "friends_only", friendsOnly }, { "extended", extended }, { "offset", offset }, { "count", count } }; VkResponseArray response = _vk.Call("likes.getList", parameters); if (extended == true) { return(response.ToReadOnlyCollectionOf <User>(x => x)); } else { return(response.ToReadOnlyCollectionOf <User>(x => new User() { Id = x })); } }
/// <inheritdoc /> public VkCollection <Comment> GetComments(GetCommentsParams getCommentsParams) { return(_vk.Call <VkCollection <Comment> >("widgets.getComments" , getCommentsParams , false , new VkCollectionJsonConverter(collectionField: "posts"))); }
public ReadOnlyCollection <long> GetList(GetListParams @params) { var parameters = new VkParameters { { "type", @params.Type }, { "owner_id", @params.OwnerId }, { "item_id", @params.ItemId }, { "page_url", @params.PageUrl }, { "filter", @params.Filter }, { "friends_only", @params.FriendsOnly }, { "offset", @params.Offset }, { "skip_own", @params.SkipOwn } }; if (@params.FriendsOnly.HasValue && @params.FriendsOnly.Value) { if (@params.Count <= 100) { parameters.Add("count", @params.Count); } } else { if (@params.Count <= 1000) { parameters.Add("count", @params.Count); } } VkResponseArray response = _vk.Call("likes.getList", parameters); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
/// <summary> /// Получает список идентификаторов пользователей или сообществ, которые добавили /// заданный объект в свой список Мне /// нравится. /// </summary> /// <param name="params"> Параметры запроса. </param> /// <param name="skipAuthorization"> Если <c> true </c>, то пропустить авторизацию </param> /// <returns> /// Возвращает список идентификаторов пользователей или сообществ, которые добавили /// заданный объект в свой список Мне /// нравится. /// </returns> /// <remarks> /// Страница документации ВКонтакте http://vk.com/dev/likes.getList /// </remarks> public VkCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = false) { @params.Extended = false; return(_vk.Call(methodName: "likes.getList", parameters: @params, skipAuthorization: skipAuthorization) .ToVkCollectionOf <long>(selector: x => x)); }
public ReadOnlyCollection <long> GetList(LikesGetListParams @params, bool skipAuthorization = true) { @params.Extended = false; VkResponseArray response = _vk.Call("likes.getList", @params, skipAuthorization); return(response.ToReadOnlyCollectionOf <long>(x => x)); }
public LinkAccessType CheckLink([NotNull] Uri url, bool skipAuthorization = true) { var parameters = new VkParameters { { "url", url } }; return(_vk.Call("utils.checkLink", parameters, skipAuthorization)); }
public Status Get(long uid) { var parameters = new VkParameters { { "uid", uid } }; return(_vk.Call("status.get", parameters)); }
public LinkAccessType CheckLink([NotNull] string url) { var parameters = new VkParameters { { "url", url } }; return(_vk.Call("utils.checkLink", parameters, true)); }
public Status Get(long userId, long?groupId = null) { var parameters = new VkParameters { { "user_id", userId }, { "group_id", groupId } }; return(_vk.Call("status.get", parameters)); }
void JoinVKG() { var request = new VKRequest() { url = "groups.join?group_id=78616012&v=" + VkApi.VkSetts.apiVersion, CallBackFunction = OnGetDataCompletedVKG, }; vkApi.Call(request); }
public LinkAccessType CheckLink([NotNull] string url) { VkErrors.ThrowIfNullOrEmpty(() => url); var parameters = new VkParameters { { "url", url } }; return(_vk.Call("utils.checkLink", parameters, true)); }
/// <inheritdoc /> public ReadOnlyCollection <StorageObject> Get(IEnumerable <string> keys = null, ulong?userId = null, bool?global = null) { return(_vk.Call <ReadOnlyCollection <StorageObject> >(methodName: "storage.get" , parameters: new VkParameters { { "keys", keys } , { "user_id", userId } , { "global", global } })); }
/// <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> /// Страница документации ВКонтакте 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)); }
/// <inheritdoc /> public long Add(NotesAddParams notesAddParams) { return(_vk.Call(methodName: "notes.add", parameters: new VkParameters { { "title", notesAddParams.Title }, { "text", notesAddParams.Text }, { "privacy_view", notesAddParams.PrivacyView }, { "privacy_comment", notesAddParams.PrivacyComment } })); }
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 WallGetObject Get(WallGetParams @params) { if (@params.Filter != null && @params.Filter == WallFilter.Suggests && @params.OwnerId >= 0) { throw new ArgumentException("OwnerID must be negative in case filter equal to Suggests", "ownerId"); } return(_vk.Call("wall.get", @params, @params.Filter != WallFilter.Suggests && @params.Filter != WallFilter.Postponed)); }
public VkCollection <Document> Get(int?count = null, int?offset = null, long?ownerId = null, DocFilter?filter = null) { VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "count", count }, { "offset", offset }, { "owner_id", ownerId }, { "type", filter } }; return(_vk.Call("docs.get", parameters).ToVkCollectionOf <Document>(r => r)); }
public ReadOnlyCollection <User> GetUsers(int?count = null, int?offset = null) { VkErrors.ThrowIfNumberIsNegative(() => count); VkErrors.ThrowIfNumberIsNegative(() => offset); var parameters = new VkParameters { { "count", count }, { "offset", offset } }; VkResponseArray response = _vk.Call("fave.getUsers", parameters); return(response.ToReadOnlyCollectionOf <User>(x => x)); }
public async Task <IActionResult> Result([FromQuery] string link, [FromServices] AnalyzingService analyzer) { string screenName = link.Replace(@"https://vk.com/", string.Empty); var users = await VkApi.Users.GetAsync(new[] { screenName }, ProfileFields.Photo100); var user = users[0]; var response = VkApi.Call( "execute.getUserInfo", new VkNet.Utils.VkParameters(new Dictionary <string, string> { ["id"] = user.Id.ToString() })); var fetchedUser = JsonConvert.DeserializeObject <FetchedResponse>(response.RawJson).Response; fetchedUser.Wall.Count = 300; fetchedUser.Wall.Items = fetchedUser.Wall.Items.Take(300).ToArray(); var result = analyzer.Analyze(fetchedUser); ViewData["Name"] = $"{user.FirstName} {user.LastName}"; ViewData["FacultyName"] = result.First().Key.ToString(); ViewData["FacultyLink"] = "https://utmn.ru"; ViewData["AvatarUrl"] = user.Photo100; return(View("Views/Result.cshtml", result)); }
public void Call_NotMoreThen3CallsPerSecond() { int invocationCount = 0; var browser = new Mock<IBrowser>(); browser.Setup(m => m.GetJson(It.IsAny<string>())) .Returns(@"{ ""response"": 2 }") .Callback(() => invocationCount++); var api = new VkApi {Browser = browser.Object}; var start = DateTimeOffset.Now; while (true) { api.Call("someMethod", VkParameters.Empty, true); int total = (int)(DateTimeOffset.Now - start).TotalMilliseconds; if (total > 999) break; } // Не больше 4 раз, т.к. 4-ый раз вызывается через 1002 мс после первого вызова, а total выходит через 1040 мс // переписать тест, когда придумаю более подходящий метод проверки browser.Verify(m => m.GetJson(It.IsAny<string>()), Times.AtMost(4)); }
/// <inheritdoc /> public IEnumerable <NotificationGetResult> Get(ulong?count = null , string startFrom = null , IEnumerable <string> filters = null , long?startTime = null , long?endTime = null) { return(_vk.Call <IEnumerable <NotificationGetResult> >(methodName: "notifications.get" , parameters: new VkParameters { { "count", count } , { "start_from", startFrom } , { "filters", filters } , { "start_time", startTime } , { "end_time", endTime } })); }
private int FillOutTextBox(string[] ids) { try { //api.Groups.GetById(...) не создает поля Cover //Поэтому нужно это делать вручную. List <Group> res = new List <Group>(); Dictionary <string, string> d = new Dictionary <string, string>(); d.Add("group_ids", String.Join(",", ids)); d.Add("fields", "cover"); VkNet.Utils.VkParameters param = new VkNet.Utils.VkParameters(d); VkNet.Utils.VkResponseArray v = api.Call("groups.getById", param); foreach (var g in v) { res.Add(VkNet.Model.Group.FromJson(g)); } foreach (var g in res) { //if (g.Photo50.LocalPath == "/images/community_50.png") if (check.CheckGroup(g)) { OutputTextBox.Text += g.Id.ToString() + "\r\n"; } } } catch (Exception e) { MessageBox.Show("Неверный сервисный ключ доступа.", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); return(0); } return(1); }
public void Call_NotMoreThen3CallsPerSecond() { int invocationCount = 0; var browser = new Mock <IBrowser>(); browser.Setup(m => m.GetJson(It.IsAny <string>())) .Returns(@"{ ""response"": 2 }") .Callback(() => invocationCount++); var api = new VkApi { Browser = browser.Object }; var start = DateTimeOffset.Now; while (true) { api.Call("someMethod", VkParameters.Empty, true); int total = (int)(DateTimeOffset.Now - start).TotalMilliseconds; if (total > 999) { break; } } // Не больше 4 раз, т.к. 4-ый раз вызывается через 1002 мс после первого вызова, а total выходит через 1040 мс // переписать тест, когда придумаю более подходящий метод проверки browser.Verify(m => m.GetJson(It.IsAny <string>()), Times.AtMost(4)); }
public bool ClearCache(Uri url) { var parameters = new VkParameters { { "url", url } }; return _vk.Call("pages.clearCache", 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 ReadOnlyCollection <User> Search(out int itemsCount, UserSearchParams @params) { if (string.IsNullOrWhiteSpace(@params.Query)) { throw new ArgumentException("Query can not be null or empty."); } var response = _vk.Call("users.search", @params); itemsCount = response["count"]; return(response["items"].ToReadOnlyCollectionOf <User>(r => r)); }
/// <summary> /// Возвращает статистику сообщества или приложения. /// </summary> /// <param name="groupId">Идентификатор сообщества.</param> /// <param name="appId">Идентификатор приложения.</param> /// <param name="dateFrom">Начальная дата выводимой статистики в формате YYYY-MM-DD.</param> /// <param name="dateTo">Конечная дата выводимой статистики в формате YYYY-MM-DD.</param> /// <returns> /// Возвращает результат выполнения метода. /// </returns> /// <remarks> /// Страница документации ВКонтакте https://vk.com/dev/stats.get /// </remarks> private ReadOnlyCollection <StatsPeriod> Get(DateTime dateFrom, DateTime?dateTo = null, long?groupId = null, long?appId = null) { var parameters = new VkParameters { { "group_id", groupId }, { "app_id", appId }, { "date_from", dateFrom.ToString("yyyy-MM-dd") } }; if (dateTo != null) { parameters.Add("date_to", dateTo.Value.ToString("yyyy-MM-dd")); } var result = _vk.Call("stats.get", parameters); return(result.ToReadOnlyCollectionOf <StatsPeriod>(x => x)); }
List <FetchedUser> FetchRemote(string vkLogin, string vkPassword) { var userIds = new List <long>(); foreach (var year in Years) { foreach (int facultyId in FacultiesExtensions.EnumerateReal()) { var response = vkApi.Users.Search(new UserSearchParams { University = UniversityId, UniversityFaculty = facultyId, UniversityYear = year, Count = 1000 }); userIds.AddRange(response.Select(u => u.Id)); } } var results = new List <FetchedUser>(); int i = 0; foreach (var userId in userIds) { // any f****n vk.net error try { if (UsersLimit != null && i >= UsersLimit) { break; } var infoResponse = vkApi.Call( "execute.getUserInfo", new VkNet.Utils.VkParameters(new Dictionary <string, string> { ["id"] = userId.ToString() })); i++; // try deserialize if wall is not hidden try { var fetchedResponse = JsonConvert.DeserializeObject <FetchedResponse>(infoResponse.RawJson); results.Add(fetchedResponse.Response); } catch (JsonSerializationException) { continue; } } catch (Exception ex) { logger.LogWarning($"User with ID {userId} is skipped during error {ex.Message}"); continue; } } return(results); }
public void Get3FriendsDataFromVk(int attempt) { var r = "friends.get?user_id=" + VkApi.currentToken.user_id + "&count=3&fields=photo_200"; vkapi.Call(r, OnGet5FriendsCompleted, new object[] { attempt }); //vkapi.call принимает 3 параметра строку запроса, функцию обработчика запроса, //и массив обеъктов(можно передать любые объекты, их пожно использовать в обработчике //например, можно рализовать повторные запросы при неудаче как здесь. }
public IEnumerable <App> GetCatalog(out int totalCount, AppGetCatalogParams @params) { var response = _vk.Call("apps.getCatalog", @params, [email protected]); totalCount = response["count"]; return(response["items"].ToReadOnlyCollectionOf <App>(x => x)); }
void onVKLogin() { VKRequest r = new VKRequest { url = "users.get?", CallBackFunction = OnGetUserInfo }; _vkapi.Call(r); }
public void Call_ThrowsCaptchaNeededException() { const string json = @"{ 'error': { 'error_code': 14, 'error_msg': 'Captcha needed', 'request_params': [ { 'key': 'oauth', 'value': '1' }, { 'key': 'method', 'value': 'messages.send' }, { 'key': 'uid', 'value': '242508553' }, { 'key': 'message', 'value': 'hello10' }, { 'key': 'type', 'value': '0' }, { 'key': 'access_token', 'value': '1fe7889c3395722934b1' } ], 'captcha_sid': '548747100691', 'captcha_img': 'http://api.vk.com/captcha.php?sid=548747100284&s=1' } }"; var browser = Mock.Of<IBrowser>(m => m.GetJson(It.IsAny<string>()) == json); var api = new VkApi {Browser = browser}; var ex = This.Action(() => api.Call("messages.send", VkParameters.Empty, true)).Throws<CaptchaNeededException>(); ex.Sid.ShouldEqual(548747100691); ex.Img.ShouldEqual(new Uri("http://api.vk.com/captcha.php?sid=548747100284&s=1")); }