private async Task <Dictionary <long, List <VkWallResponse> > > CheckUpdates() { Dictionary <long, List <VkWallResponse> > usersPosts = new Dictionary <long, List <VkWallResponse> >(); foreach (var userId in _userIdList) { var postDto = new PostDTOModel() { AccountId = userId }; var wall = await VkClient.GetUserPosts(postDto); //if (wall.Response.Items.Any(x => x.Date > DateTime.Now.AddMinutes(-10))) //{ // if (usersPosts.ContainsKey(userId)) // { // usersPosts[userId].Add(wall); // } // else // { // usersPosts.Add(userId, new List<VkWallResponse>() { wall }); // } //} } return(usersPosts); }
static void Main(string[] args) { string groupName = "programm_exam"; Stopwatch timeGetGroupMembersFriendsWalls = new Stopwatch(); Stopwatch FillPostsInDB = new Stopwatch(); var vkClient = new VkClient(); List <VkUser> listGroupMembers = vkClient.GetGroupMembersGraph(groupName); var efClient = new EFDatabaseClient(); efClient.CleanDatabase(); efClient.FillGroupMembersInDatabase(listGroupMembers, groupName); timeGetGroupMembersFriendsWalls.Start(); var userWallDictionary = vkClient.GetWallsForFriendsInUserGraph(listGroupMembers); timeGetGroupMembersFriendsWalls.Stop(); Console.WriteLine("------------------------------------------------------------------\n" + "Время получения постов для друзей членов сообщества: {0}\n" + "------------------------------------------------------------------", FormatTime(timeGetGroupMembersFriendsWalls)); FillPostsInDB.Start(); efClient.FillNewsForDbGroupMembers(groupName, userWallDictionary); FillPostsInDB.Stop(); Console.WriteLine("Время записи всех постов для друзей членов сообщества в БД: {0}\n" + "------------------------------------------------------------------", FormatTime(FillPostsInDB)); Console.ReadKey(); Console.ReadKey(); }
public async Task <IActionResult> AddUpdateVKUser([FromBody] TokenModel token) { var vk = new VkClient(); var tokenString = await vk.GetToken(token); var vkuser = await vk.GetUserByCode(tokenString); var user = new UserDTO(); if (vkuser != null) { user = new UserDTO { Id = vkuser.Id, FirstName = vkuser.FirstName, LastName = vkuser.LastName, Domain = vkuser.Domain, }; } try { UserAction.AddUpdateUser(user); var tknbck = new TokenBack() { Token = tokenString, Id = user.Id }; return(Ok(tknbck)); } catch (Exception ex) { return(BadRequest(ex.ToString())); } }
public static void RegisterAuth() { // To let users of this site log in using their accounts from other sites such as Microsoft, Facebook, and Twitter, // следует обновить сайт. Дополнительные сведения: http://go.microsoft.com/fwlink/?LinkID=252166 //OAuthWebSecurity.RegisterMicrosoftClient( // clientId: "", // clientSecret: ""); //OAuthWebSecurity.RegisterTwitterClient( // consumerKey: "", // consumerSecret: ""); //OAuthWebSecurity.RegisterFacebookClient( // appId: "", // appSecret: ""); //OAuthWebSecurity.RegisterGoogleClient(); var vkAuth = new VkClient( AppId: "AppId", AppSecret: "AppSecret"); OAuthWebSecurity.RegisterClient(vkAuth, displayName: "ВТентакле", extraData: null); var gitHubClient = new GitHubClient( clientId: "clientId", clientSecret: "clientSecret"); OAuthWebSecurity.RegisterClient(gitHubClient, "GitHub", null); }
public async Task <IViewComponentResult> InvokeAsync(VkClient vkClient) { if (_context != null && _signInManager.IsSignedIn(HttpContext.User)) { var user = await _userManager.GetUserAsync(HttpContext.User); var vkUser = await _context .VkUserSet? .FirstOrDefaultAsync(id => id.VkUserId == user.VkUserId); var vkClientViewModel = new VkClientViewModel { AccessToken = vkUser?.AccessToken, UserId = vkUser?.UserVkId }; if (vkClient != null) { vkClientViewModel.ResponseType = vkClient.ResponseType; vkClientViewModel.RedirectUri = vkClient.RedirectUri; vkClientViewModel.Scope = vkClient.Scope; vkClientViewModel.ClientId = vkClient.ClientId; vkClientViewModel.Display = vkClient.Display; } return(View(vkClientViewModel)); } return(View()); }
public async Task<VkClient> GetUncheckedClient(VkAcc vkAcc) { VkClient vkClient = vkAcc.VkClients.Find(e => e.ClientStatus == VkClient.Status.Unchecked); if (vkClient == null) { await this.UpdateClients(vkAcc); vkClient = vkAcc.VkClients.Find(e => e.ClientStatus == VkClient.Status.Unchecked); } return vkClient; }
public void OneTimeSetUp() { client = new VkClient(); client.Authorize(new InternalVkApiAuthorizationRequestParams { ApplicationId = 6933681, AccessToken = "b30e6b4575c30264bd26c5a6449d4e9ca635357d7758dc240f4ca7390d520aa35946b9ecad3e01138623f" }); }
public async Task <IActionResult> Index(RequestWrapper request) { Console.WriteLine($"Current user authenticated : {HttpContext.User.Identity.IsAuthenticated}"); var result = new ResponseWrapper { Session = request.Session, Version = request.Version }; Console.WriteLine($"{nameof(AliceController)} handle request with command: {request?.Request?.Command}"); var publicLayer = new PublicActionsLayer(); foreach (var action in publicLayer.Actions) { if (action.CanHandle(request.Request)) { result.Response = await action.Handle(request.Request); return(Ok(result)); } } var user = HttpContext.User; if (!user.Identity.IsAuthenticated) { result.StartAccountLinking = new object(); return(await Task.FromResult(Ok(result))); } var userId = user.FindFirst("id").Value; var yandexUser = await _unitOfWork.UserRepository.GetEntity(userId); if (yandexUser == null) { await _userCreator.SyncYandexUser(user.Identity as ClaimsIdentity); } var vkUser = _unitOfWork.VkUserRepository.Find(user => user.YandexUserId == yandexUser.Id).FirstOrDefault(); var vkClient = new VkClient(); var getStatusAction = new GetVkStatusAction(vkClient, vkUser); if (getStatusAction.CanHandle(request.Request)) { result.Response = await getStatusAction.Handle(request.Request); return(Ok(result)); } result.Response = new Response { Text = $"Ты авторизован, поздравляю!" }; return(Ok(result)); }
public MainForm() { InitializeComponent(); vk = new VkClient(); vk.OnAuthCodeRequired += () => { AuthCodeForm acf = new AuthCodeForm(); acf.ShowDialog(); return(acf.Code); }; }
public async Task LikeClient(VkClient client) { try { await VkApisManager.RandomLikeUser(client.VkAcc, client.ProfileVkId); await this.SetClientStatus(client.VkClientId, VkClient.Status.Liked); } catch (Exception e) { Console.WriteLine(""); } }
public string GetResponseHtml(IDictionary <string, string> parameters, Uri signinUri) { string code = parameters["code"]; // Exchange the Request Token for an Access Token string appId = _settings.VkApplicationId; string appSecret = _settings.VkApplicationSecret; string scheme = parameters["SERVER_PORT_SECURE"] == "1" ? "https" : "http"; var callbackUri = new UriBuilder(string.Format("{0}://{1}", scheme, parameters["HTTP_HOST"])) { Path = parameters["URL"], Query = string.Format("context={0}", parameters["context"]) }; var service = new VkClient(appId, appSecret); dynamic accessToken = service.GetAccessToken(code, callbackUri.ToString()); dynamic token = accessToken.access_token; service.AuthenticateWith(token.ToString()); // Claims dynamic result = service.Get("users.get", new { fields = "screen_name" }); dynamic user = result.response[0]; string acsNamespace = _settings.AcsNamespace; string wtRealm = string.Format(WtRealm, acsNamespace); string wReply = string.Format(WReply, acsNamespace); var requestMessage = new SignInRequestMessage(signinUri, wtRealm, wReply); // Add extracted claims var identity = new ClaimsIdentity(AuthenticationTypes.Federation); identity.AddClaim(new Claim(ClaimTypes.Name, string.Format("{0} {1}", user.first_name, user.last_name))); identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, user.uid.ToString())); identity.AddClaim(new Claim(VkClaims.VkToken, token.ToString())); var principal = new ClaimsPrincipal(identity); SignInResponseMessage responseMessage = FederatedPassiveSecurityTokenServiceOperations.ProcessSignInRequest(requestMessage, principal, this); responseMessage.Context = parameters["context"]; return(responseMessage.WriteFormPost()); }
public async Task AddClientToFriends(VkClient client) { try { await VkApisManager.AddUserToFriends(client.VkAcc, client.ProfileVkId); await this.IncrementAddedFriends(client.VkAcc); await this.SetClientStatus(client.VkClientId, VkClient.Status.Ready); } catch (Exception e) { await this.ClearFriends(client.VkAcc); } }
public void Setup() { var fakeLog = new FakeLog(); var vkApi = new VkApi(); var auth = new VkAuthorizer(vkApi, fakeLog, "", ""); var authResult = auth.TryAuthorize(); if (!authResult) { throw new Exception("Не прошла авторизация"); } vkClient = new VkClient(vkApi); }
static public VkNet.Model.User GetVkUser(VkClient vkClient, VkAcc vkAcc = null) { if (vkAcc == null) { vkAcc = vkClient.VkAcc; } var api = _getApi(vkAcc); var user = api.Users.Get( new long[] { vkClient.ProfileVkId }, VkNet.Enums.Filters.ProfileFields.BirthDate | VkNet.Enums.Filters.ProfileFields.City) .FirstOrDefault(); return(user); }
public async Task <IEnumerable <PostDTO> > GetUserPosts([FromBody] PostDTOModel postModel) { var postList = new List <PostDTO>(); var vkPosts = await VkClient.GetUserPosts(new PostDTOModel { AccountId = 35340109, Token = postModel.Token }); //var vkPosts2 = await VkClient.GetUserPosts(new PostDTOModel { AccountId = 68038156, Token = postModel.Token}); var vkPosts3 = await VkClient.GetUserPosts(new PostDTOModel { AccountId = 55325758, Token = postModel.Token }); var usr = VkClient.GetUser(postModel.Token, 35340109); var usr2 = VkClient.GetUser(postModel.Token, 68038156); var usr3 = VkClient.GetUser(postModel.Token, 55325758); List <Item> postList3 = new List <Item>(); postList3 = postList3.Concat(vkPosts.Response.Items).ToList(); // postList3.Concat(vkPosts2.Response.Items); postList3 = postList3.Concat(vkPosts3.Response.Items).ToList(); //vkPosts.Response.Items.Add(vkPosts2.Response.Items); string[] arr = new string[] { }; foreach (var pst in vkPosts.Response.Items) { postList.Add(new PostDTO { Id = pst.Id.ToString(), FirstName = usr.FirstName, LastName = usr.LastName, AvatarUrl = usr.PhotoUrl, Text = pst.Text, Likes = pst.Likes.Count, Images = arr }); } foreach (var pst in vkPosts3.Response.Items) { postList.Add(new PostDTO { Id = pst.Id.ToString(), FirstName = usr3.FirstName, LastName = usr3.LastName, AvatarUrl = usr3.PhotoUrl, Text = pst.Text, Likes = pst.Likes.Count, Images = arr }); } return(postList); }
public List <AccountModel> Post([FromBody] SearchDTO search) { var user = VkClient.Search(search); var dtoUser = new List <AccountModel>(); dtoUser.Add(new AccountModel() { Id = user.Id.ToString(), AccountUrl = user.Domain, FirstName = user.FirstName, LastName = user.LastName, PhotoUrl = user.Photo400Orig.ToString(), Type = SocialNetworkType.VK }); return(dtoUser); }
public Uri GetAutheticationUri(IDictionary <string, string> parameters, Uri callback) { var callbackUri = new UriBuilder(callback) { Query = string.Format("context={0}", parameters["wctx"]) }; // Pass your credentials to the service string appId = _settings.VkApplicationId; string appSecret = _settings.VkApplicationSecret; var service = new VkClient(appId, appSecret); // Redirect to the OAuth Authorization URL return(service.GetAuthorizationUri(string.Empty, callbackUri.ToString())); }
public async Task<List<InputMediaPhoto>> GetVkProfilePhotosMaxSizesAsync(VkClient vkClient) { VkNet.Utils.VkCollection<VkNet.Model.Attachments.Photo> Photos; Photos = await VkApisManager.GetProfilePhotosClient(vkClient); List<InputMediaPhoto> inputPhotos = new List<InputMediaPhoto>(); foreach (var Photo in Photos) { var maxHeight = Photo.Sizes.Max(e => e.Height); var maxPhoto = Photo.Sizes.FirstOrDefault(e => e.Height == maxHeight); inputPhotos.Add(new InputMediaPhoto(new InputMedia(maxPhoto.Url.ToString()))); } return inputPhotos; }
public TokenData Get(IpData data) { // Try to validate token var service = new VkClient(); service.AuthenticateWith(data.Token); dynamic result; try { result = service.Get("users.get", new { fields = "screen_name" }); } catch (Exception e) { throw new BadGatewayException(e); } if (result.error != null) { dynamic message = result.error.error_msg ?? string.Empty; throw new BadRequestException(message.ToString()); } try { dynamic user = result.response[0]; return(new TokenData { IdentityProvider = ProviderType.Vk, Name = string.Format("{0} {1}", user.first_name, user.last_name), UserIdentifier = user.uid.ToString(), Token = data.Token, TokenSecret = data.TokenSecret }); } catch (Exception e) { string message = string.Format("Unable to receive VK profile: {0}", e); throw new InternalServerErrorException(message); } }
static public async Task <VkCollection <Photo> > GetProfilePhotosClient(VkClient vkClient, VkAcc vkAcc = null) { if (vkAcc == null) { vkAcc = vkClient.VkAcc; } var api = _getApi(vkAcc); var Photos = await api.Photo.GetAsync(new PhotoGetParams() { OwnerId = vkClient.ProfileVkId, AlbumId = VkNet.Enums.SafetyEnums.PhotoAlbumType.Profile, Reversed = true, Count = 10, PhotoSizes = true, }); return(Photos); }
public VkClientTests() { _vkApiMethodProvider = new Mock<IVkMethodProvider>(); _vkClient = new VkClient(_vkApiMethodProvider.Object); }
public IViewComponentResult Invoke(VkClient vkClient) { return(View(vkClient)); }
internal static async Task <List <VkClient> > GetNewClients( VkAcc vkAcc, int Count, ModelScoutAPI api, ModelScoutDbContext context) { uint UpdatedCount = 0; uint Offset = 0; List <VkClient> vkClients = new List <VkClient>(); var vkApi = _getApi(vkAcc); if (!_isVkApiActive(vkApi)) { return(null); } while (UpdatedCount < Count) { var clientsSearch = await vkApi.Users.SearchAsync(new UserSearchParams() { City = vkAcc.City, Country = vkAcc.Country, AgeFrom = (ushort)vkAcc.AgeFrom, AgeTo = (ushort)vkAcc.AgeTo, Sex = (VkNet.Enums.Sex)vkAcc.Sex, BirthMonth = (ushort)vkAcc.BirthMonth, BirthDay = (ushort)vkAcc.BirthDay, Online = true, HasPhoto = true, Count = (uint)Count, Offset = Offset, }); foreach (var clientSearch in clientsSearch) { //BAD CODE if (!context.VkClients.Any(e => e.ProfileVkId == clientSearch.Id) && clientSearch.IsClosed != true) //BAD CODE { var vkClient = new VkClient() { ClientStatus = VkClient.Status.Unchecked, VkAccId = vkAcc.VkAccId, ProfileVkId = (int)clientSearch.Id }; //BAD CODE vkAcc.VkClients.Add(vkClient); //BAD CODE vkClients.Add(vkClient); UpdatedCount++; } } Offset += (uint)Count; if (clientsSearch.TotalCount < Offset) { break; } } return(vkClients); }