Enumerar contactos

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Obtener contactos en el buzón del usuario.

Hay dos posibles escenarios donde una aplicación puede obtener contactos en la carpeta de otro usuario:

  • Si la aplicación tiene permisos de aplicación, o bien,
  • Si la aplicación tiene los correspondientes permisos delegados de un usuario y otro usuario ha compartido una carpeta de contacto con ese usuario, o bien, le ha concedido acceso delegado a ese usuario. Vea detalles y un ejemplo.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Contacts.Read Contacts.ReadWrite
Delegado (cuenta personal de Microsoft) Contacts.Read Contacts.ReadWrite
Aplicación Contacts.Read Contacts.ReadWrite

Solicitud HTTP

Para obtener todos los contactos de la carpeta Contactos predeterminada de un usuario:

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

Para obtener los contactos de una carpeta específica del buzón del usuario:

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

Parámetros de consulta opcionales

Puede usar el parámetro de consulta $filter para filtrar contactos en función de sus direcciones de correo:

GET https://graph.microsoft.com/beta/me/contacts?$filter=emailAddresses/any(a:a/address eq 'garth@contoso.com')

Tenga en cuenta que puede usar $filter, any y el operador eq solo en la subpropiedad dirección de instancias en una colección emailAddresses. Es decir, no puede filtrar name ni cualquier otra subpropiedad de una instancia de emailAddresses, ni tampoco puede aplicar ningún otro operador o función con filter, como ne, le, y startswith().

Para obtener información general sobre el parámetro de consulta $filter, vea Parámetros de consulta OData.

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Si se ejecuta correctamente, este método devuelve un 200 OK código de respuesta y una colección de objetos de contacto en el cuerpo de la respuesta.

Ejemplo

Solicitud

En el ejemplo siguiente se obtienen las propiedades displayName y emailAddresses de los contactos del usuario que ha iniciado sesión.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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":"elvisb@contoso.com"
                },
                {
                    "type":"other",
                    "otherLabel":"Volunteer work",
                    "name":"Elvis Blank",
                    "address":"elvisb@contoso.com"
                }
            ]
        },
        {
            "@odata.etag":"W/\"EQAAABYAAACv7At+UNVFRLhGciJGF6v5AAAve7fn\"",
            "id":"AAMkADh6v5AAAvgTCEAAA=",
            "displayName":"Pavel Bansky",
            "emailAddresses":[
                {
                    "type":"personal",
                    "name":"Pavel Bansky",
                    "address":"pavelb@contoso.com"
                },
                {
                    "type":"other",
                    "otherLabel":"Volunteer work",
                    "name":"Pavel Bansky",
                    "address":"pavelb@contoso.com"
                }
            ]
        }
    ]
}