Exemple #1
0
    public GoogleContacts()
    {
        // Create OAuth credential.
        UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            new ClientSecrets
        {
            ClientId     = m_client_id,
            ClientSecret = m_client_secret
        },
            new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly" },
            "me",
            CancellationToken.None).Result;
        // Create the service.
        var service = new PeopleServiceService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName       = "My App",
        });
        // Groups list ////////////
        ContactGroupsResource groupsResource = new ContactGroupsResource(service);

        ContactGroupsResource.ListRequest listRequest = groupsResource.List();
        ListContactGroupsResponse         response    = listRequest.Execute();
        // eg to show name of each group
        List <string> groupNames = new List <string>();

        foreach (ContactGroup group in response.ContactGroups)
        {
            groupNames.Add(group.FormattedName);
        }
        ///////////////

        // Contact list ////////////
        PeopleResource.ConnectionsResource.ListRequest peopleRequest =
            service.People.Connections.List("people/me");
        peopleRequest.PersonFields = "names,emailAddresses";
        peopleRequest.SortOrder    = (PeopleResource.ConnectionsResource.ListRequest.SortOrderEnum) 1;
        ListConnectionsResponse people = peopleRequest.Execute();
        // eg to show display name of each contact
        List <string> contacts = new List <string>();

        foreach (var person in people.Connections)
        {
            contacts.Add(person.Names[0].DisplayName);
        }
        ///////////////
    }
Exemple #2
0
        public async Task <IActionResult> Contact()
        {
            string gCode        = TempData["code"].ToString();
            string ClientSecret = _config.GetValue <string>("GooglePoepleAPI:ClientSecret");
            string ClientId     = _config.GetValue <string>("GooglePoepleAPI:ClientId");

            string       userId          = "userId";
            const string dataStoreFolder = "googleApiStorageFile";

            // create authorization code flow with clientSecrets
            GoogleAuthorizationCodeFlow authorizationCodeFlow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
            {
                DataStore     = new FileDataStore(dataStoreFolder),
                ClientSecrets = new ClientSecrets()
                {
                    ClientId     = ClientId,
                    ClientSecret = ClientSecret
                }
            });

            FileDataStore fileStore     = new FileDataStore(dataStoreFolder);
            TokenResponse tokenResponse = await fileStore.GetAsync <TokenResponse>(userId);

            if (tokenResponse == null)
            {
                // token data does not exist for this user
                tokenResponse = await authorizationCodeFlow.ExchangeCodeForTokenAsync(
                    userId,                          // user for tracking the userId on our backend system
                    gCode,
                    "http://localhost:5000/people/", // redirect_uri can not be empty. Must be one of the redirects url listed in your project in the api console
                    CancellationToken.None);
            }

            UserCredential userCredential = new UserCredential(authorizationCodeFlow, userId, tokenResponse);

            var service = new PeopleServiceService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = userCredential,
                ApplicationName       = "VAapps",
            });


            ContactGroupsResource groupsResource = new ContactGroupsResource(service);

            ContactGroupsResource.ListRequest listRequest = groupsResource.List();
            ListContactGroupsResponse         response    = listRequest.Execute();


            List <string> listOnView = new List <string>();

            foreach (ContactGroup group in response.ContactGroups)
            {
                listOnView.Add("Groups: " + group.FormattedName);
            }

            Google.Apis.PeopleService.v1.PeopleResource.ConnectionsResource.ListRequest peopleRequest = service.People.Connections.List("people/me");
            peopleRequest.PersonFields = "names,emailAddresses,phoneNumbers";
            peopleRequest.SortOrder    = (Google.Apis.PeopleService.v1.PeopleResource.ConnectionsResource.ListRequest.SortOrderEnum) 1;
            peopleRequest.PageSize     = 1999;
            ListConnectionsResponse people = peopleRequest.Execute();


            //      are: * addresses * ageRanges * biographies * birthdays * braggingRights * coverPhotos
            //     * emailAddresses * events * genders * imClients * interests * locales * memberships
            //     * metadata * names * nicknames * occupations * organizations * phoneNumbers *
            //     photos * relations * relationshipInterests * relationshipStatuses * residences
            //     * sipAddresses * skills * taglines * urls * userDefined

            var me = service.People.Get("people/me");

            me.PersonFields = "names,emailAddresses,phoneNumbers,birthdays,coverPhotos,metadata,events";
            var aboutMe = me.Execute();

            ViewBag.AboutMe = aboutMe;



            ViewBag.ContactList = people.Connections;
            return(View());
        }