• BSA Lab.
      home

  • apps
    Главная
  • contacts
    Об авторе
  • library_books
    Блог
  • shop
    Портфолио
    keyboard_arrow_down
    • Google API
    • Gapi-People
      wc
    • Gapi-Email
      mail_outline
    • Gapi-Examples
      more

    • Silex (PHP micro-framework)
    • Silex-MVC
      desktop_windows
    • Silex-UBKI
      last_page

    • Zend (PHP framework)
    • ZF-MyBlog
      library_books
    • ZF2-ASM
      show_chart

    • Node.js
    • Express-Passport
      verified_user
    • Feathers-Examples
      more

    • Vue.js (JavaScript framework)
    • Vue-Resume
      account_circle
    • Vue-Business-Light
      work
    • Vue-Examples
      more
    • Vuex-Examples
      more

    • Nuxt (JavaScript framework)
    • Nuxt-Business-Light
      work
    • Nuxt-Vuetify-Start
      picture_in_picture

  • Темы
  • message
    WEB ресурсы
    keyboard_arrow_down
    • Обзор
      filter_none

  • message
    Google Client API
    keyboard_arrow_down
    • Обзор
      filter_none
    • Gmail-Send
      contact_mail
    • Gmail-Inbox
      mail_outline
BSA / Portfolio-gapi-people
  • Информация

  • contact_mail
    Контакты
  • contacts
    Об авторе
  • public
    Мои проекты на GitHub
Google People API - пример
Пример использования Google People API.

2017-11-10

shop

Введение.

Этот проект демонстрирует использование некоторых функций сервиса Google People API. Этот сервис обеспечивает доступ к информации о профайлах и контактах пользователей.

Пример использования Google People API можно посмотреть здесь

Ресурсы

Google Client API
Регистрация через Google для Вебсайтов
Google API Клиентская Библиотека для JavaScript
Google People API
Документация
Описание интерфейса
Method: people.get
Примеры

Загрузка/Инициализация клиенской библиотеки Google API

Вначале нужно загрузить и инициализировать клиенскую библиотеку Google API см. пр.1.

пр.1

    <script type="text/javascript" >
        // Enter an API key from the Google API Console:
        //   https://console.developers.google.com/apis/credentials
        var apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
        // Enter the API Discovery Docs that describes the APIs you want to
        // access. In this example, we are accessing the People API, so we load
        // Discovery Doc found here: https://developers.google.com/people/api/rest/
        var discoveryDocs = ["https://people.googleapis.com/$discovery/rest?version=v1"];
        // Enter a client ID for a web application from the Google API Console:
        //   https://console.developers.google.com/apis/credentials?project=_
        // In your API Console project, add a JavaScript origin that corresponds
        //   to the domain where you will be running the script.
        var clientId = 'xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com';
        // Enter one or more authorization scopes. Refer to the documentation for
        // the API or https://developers.google.com/people/v1/how-tos/authorizing
        // for details.
        var scopes = 'profile';
        var authorizeButton = document.getElementById('authorize-button');
        var signoutButton = document.getElementById('signout-button');
        function handleClientLoad() {
            // Load the API client and auth2 library
            gapi.load('client:auth2', initClient);
        }
        function initClient() {
            gapi.client.init({
                apiKey: apiKey,
                discoveryDocs: discoveryDocs,
                clientId: clientId,
                scope: scopes
            }).then(function () {
                // Listen for sign-in state changes.
                gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
                // Handle the initial sign-in state.
                updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
                authorizeButton.onclick = handleAuthClick;
                signoutButton.onclick = handleSignoutClick;
            });
        }

        ...

    </script>
    <script async defer
        src="https://apis.google.com/js/api.js"
        onload="this.onload=function(){};handleClientLoad()"
        onreadystatechange="if (this.readyState === 'complete') this.onload()"
    >
    </script>

Авторизация пользователя на Google сервере

Перед тем как выполнить какие то операции с Google People API необходимо авторизироваться см. пр.2.

пр.2

    <script type="text/javascript" >

        ...

        function handleAuthClick(event) {
            gapi.auth2.getAuthInstance().signIn();
        }

        function handleSignoutClick(event) {
            gapi.auth2.getAuthInstance().signOut();
        }

        function updateSigninStatus(isSignedIn) {
            if (isSignedIn) {
                authorizeButton.style.display = 'none';
                signoutButton.style.display = 'block';
                makeApiCall();
            } else {
                authorizeButton.style.display = 'block';
                signoutButton.style.display = 'none';
            }
        }

        ...

    </script>

Выполним операцию (Method: people.get)

При этом мы можем получить иноформацию для конкретного пользователя по его уникальному имени. Используя имя people/me мы получим информацию о самом авторизированном пользователе см. пр.3.

пр.3

    <script type="text/javascript" >

        ...

        // Load the API and make an API call.  Display the results on the screen.
        function makeApiCall() {
            gapi.client.people.people.get({
                'resourceName': 'people/me',
                'personFields': 'names,emailAddresses'
            }).then(function(resp) {
                var p = document.createElement('p');
                var name = resp.result.names[0].givenName;
                p.appendChild(document.createTextNode('Hello, '+name+'!'));
                document.getElementById('content').appendChild(p);
            });
        }

        ...

    </script>

Параметры запроса

Параметры
personFields

string (FieldMask format)

Требуется. Маска поля для ограничения того, какие данные из профайла пользователя будут получены. Допустимые значения:

  • addresses
  • ageRanges
  • biographies
  • birthdays
  • braggingRights
  • coverPhotos
  • emailAddresses
  • events
  • genders
  • imClients
  • interests
  • locales
  • memberships
  • metadata
  • names
  • nicknames
  • occupations
  • organizations
  • phoneNumbers
  • photos
  • relations
  • relationshipInterests
  • relationshipStatuses
  • residences
  • skills
  • taglines
  • urls
© 2017 Сергей Бескоровайный
language Разработчик:
BSA Lab.