Ejemplo n.º 1
0
        public static Person getPlusUser(PlusService serviceplus)
        {
            PeopleResource.GetRequest personRequest = serviceplus.People.Get("me");
            Person user = personRequest.Execute();

            return(user);
        }
Ejemplo n.º 2
0
        public string GetId(string gmail)
        {
            var decId = RegisterUser(gmail);

            var contactInfoResponse = GetAddInfo();

            if (contactInfoResponse.Exception == null)
            {
                var person = contactInfoResponse.Result.Connections.Where(x => x.ResourceName.Contains(decId.Result)).ToList();

                if (person.Any())
                {
                    return(person.First().CoverPhotos[0].Metadata.Source.Id);

                    //var result = typeof(Person).GetProperties()
                    //.Select(x => new { property = x.Name, value = x.GetValue(person[0]) })
                    //.Where(x => x.value != null)
                    //.ToList();

                    // photo: property photos [0]

                    //System.IO.File.WriteAllText(@"C:\\Users\\me\\Desktop\\result.json", JsonConvert.SerializeObject(result));
                }
            }
            else
            {
                var request = new PeopleResource.GetRequest(peopleService, decId.Result);
                request.PersonFields = "metadata";

                var requestResult = request.Execute();

                if (requestResult.Metadata.Sources.Count > 1)
                {
                    return(requestResult.Metadata.Sources[1].Id);
                }
            }

            DeleteUser(decId.Result);


            return(String.Empty);
        }
Ejemplo n.º 3
0
        public async Task Login()
        {
            if (isAlreadyInLoginProcess || credential != null)
            {
                CancelLogin();
            }
            else
            {
                isAlreadyInLoginProcess = true;
                source = new CancellationTokenSource(new TimeSpan(0, 1, 0));
                token  = source.Token;

                FileStream stream   = new FileStream(System.Windows.Forms.Application.StartupPath + "credentials.json", FileMode.Open, FileAccess.Read);
                string     credPath = "token.json";
                await Task.Run(() =>
                {
                    try
                    {
                        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                            GoogleClientSecrets.Load(stream).Secrets,
                            scopes,
                            "NotesieveDesktopUser",
                            token,
                            new FileDataStore(credPath, true)).Result;
                    }
                    catch (System.AggregateException e)
                    {
                        if (token.IsCancellationRequested)
                        {
                            //Операция прервана
                        }
                        else
                        {
                            OnError?.Invoke(e.InnerException + " " + e.Message);
                        }
                        isAlreadyInLoginProcess = false;
                    }
                    catch (System.Net.Http.HttpRequestException e)
                    {
                        isAlreadyInLoginProcess = false;
                        OnSyncStateChanged?.Invoke(gSyncState.eFailed);
                        OnError?.Invoke("Проблема с интрнєт-соединением.\nВы можете продолжать использовать Notesieve но временно, не сможете его синхронизировать.");
                    }
                });

                if (credential == null)
                {
                    isAlreadyInLoginProcess = false;
                    OnLoginFailed?.Invoke();
                }
                else
                {
                    try
                    {
                        isAlreadyInLoginProcess = false;
                        PeopleServiceService peopleService = new PeopleServiceService(new BaseClientService.Initializer()
                        {
                            HttpClientInitializer = credential,
                            ApplicationName       = applicationName,
                        });
                        isLogin = true;
                        PeopleResource.GetRequest peopleRequest = peopleService.People.Get("people/me");
                        peopleRequest.PersonFields = "names,photos";
                        Person profile = peopleRequest.Execute();
                        string name    = profile.Names[0].DisplayName;
                        string photo   = profile.Photos[0].Url;
                        OnLoginSuccsesfull?.Invoke(name, photo);
                    }
                    catch (System.Net.Http.HttpRequestException e)
                    {
                        isAlreadyInLoginProcess = false;
                        OnSyncStateChanged?.Invoke(gSyncState.eLostConnection);
                        OnError?.Invoke("Проблема с интрнєт-соединением.\nВы можете продолжать использовать Notesieve но временно, не сможете его синхронизировать.");
                    }
                }
            }
        }
 /// <summary>
 /// Get a person
 /// Documentation: https://developers.google.com/+/api/latest/people/get
 /// </summary>
 /// <param name="service"></param>
 /// <param name="_userId">Get a person's profile.If using the userId value "me", this method requires authentication using a token that has been granted the OAuth scope</param>
 /// <returns></returns>
 public static Person GetPerson(PlusService service, string _userId)
 {
     PeopleResource.GetRequest personRequest = service.People.Get(_userId);
     return personRequest.Execute();
 }