Поделиться через


Список контактов

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Получение контактов в почтовом ящике пользователя.

Существует два сценария, с помощью которых приложение может получить контакты из папки контактов другого пользователя:

  • У приложения есть разрешения для приложений; или
  • У приложения есть соответствующие делегированные разрешения от одного пользователя, а другой пользователь поделился с ним папкой контактов или предоставил ему делегированный доступ. См. подробные сведения и пример.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Contacts.Read Contacts.ReadWrite
Делегированные (личная учетная запись Майкрософт) Contacts.Read Contacts.ReadWrite
Для приложений Contacts.Read Contacts.ReadWrite

HTTP-запрос

Чтобы получить все контакты в папке "Контакты" пользователя по умолчанию:

GET /me/contacts
GET /users/{id | userPrincipalName}/contacts

Для получения контактов, которые хранятся в определенной папке в почтовом ящике пользователя:

GET /me/contactfolders/{Id}/contacts
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts

GET /me/contactFolders/{id}/childFolders/{id}/.../contacts
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts

Необязательные параметры запросов

С помощью параметра запроса $filter можно фильтровать контакты на основе адресов электронной почты:

GET https://graph.microsoft.com/beta/me/contacts?$filter=emailAddresses/any(a:a/address eq '[email protected]')

Обратите внимание, что вы можете использовать оператор $filter, any, и eq только для дочернего свойства address для экземпляров коллекции emailAddresses. Т.е. вы не можете выполнять фильтрацию с помощью дочернего свойства name или другого дочернего свойства экземпляра emailAddresses, как и не можете применять другие операторы или функции с filter, такие как ne, le и startswith().

Общие сведения о параметре запроса $filter см. в статье Параметры запроса OData.

Заголовки запросов

Заголовок Значение
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.

Текст запроса

Не указывайте текст запроса для этого метода.

Отклик

В случае успешного выполнения этот метод возвращает код отклика 200 OK и коллекцию контактных объектов в теле отклика.

Пример

Запрос

В следующем примере возвращаются свойства displayName и emailAddresses контактов вошедшего пользователя.

GET https://graph.microsoft.com/beta/me/contacts?$select=displayName,emailAddresses

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('c3e1fcd2-db78-42a8-aec5-1f2cd59abb5c')/contacts(displayName,emailAddresses)",
    "value":[
        {
            "@odata.etag":"W/\"EQAAABYAAACv7At+UNVFRLhGciJGF6v5AAAve7f6\"",
            "id":"AAMkADh6v5AAAvgTCFAAA=",
            "displayName":"Elvis Blank",
            "emailAddresses":[
                {
                    "type":"personal",
                    "name":"Elvis Blank",
                    "address":"[email protected]"
                },
                {
                    "type":"other",
                    "otherLabel":"Volunteer work",
                    "name":"Elvis Blank",
                    "address":"[email protected]"
                }
            ]
        },
        {
            "@odata.etag":"W/\"EQAAABYAAACv7At+UNVFRLhGciJGF6v5AAAve7fn\"",
            "id":"AAMkADh6v5AAAvgTCEAAA=",
            "displayName":"Pavel Bansky",
            "emailAddresses":[
                {
                    "type":"personal",
                    "name":"Pavel Bansky",
                    "address":"[email protected]"
                },
                {
                    "type":"other",
                    "otherLabel":"Volunteer work",
                    "name":"Pavel Bansky",
                    "address":"[email protected]"
                }
            ]
        }
    ]
}