es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

API de Google People: Directorio de contactos – No se puede obtener el campo de nombre desde la API.

Estamos utilizando la API de Personas para obtener detalles de “Directorio”. La API no está devolviendo el nombre para la mayoría de las personas en el directorio. Solo 2 cuentas en nuestra cuenta de GSuite proporcionan el campo de nombre, mientras que las demás no lo hacen. Sin embargo, otros detalles como las “direcciones de correo electrónico” y los “números de teléfono” están disponibles para todos.

No encontramos ningún control más detallado para campos individuales al utilizar la configuración “Compartir directorio externo → Dominio y datos públicos”.

Intentamos cambiar la configuración de la opción predeterminada a “Compartir directorio externo → Datos públicos y campos básicos del perfil de usuario autenticado”. Sin embargo, esto resulta en que la respuesta de la API muestre el error “PERMISSION_DENIED”.

Para uno de los usuarios en el directorio, creamos una cuenta de Google Currents. Cuando la cuenta estaba activa, el campo de nombre estaba disponible para este usuario. Después de que la cuenta fue eliminada/desactivada, el campo de nombre ya no estaba disponible.

API de Personas que se está utilizando:

GET https://people.googleapis.com/v1/people:searchDirectoryPeople?query=a&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=emailAddresses,names,phoneNumbers,photos

Los documentos a los que nos hemos referido hasta ahora son los siguientes:

API de Personas: Búsqueda de directorios:
https://developers.google.com/people/api/rest/v1/people/searchDirectoryPeople

Permitir que las aplicaciones de terceros accedan a los datos del directorio:
https://support.google.com/a/answer/6343701

Vista combinada de información de personas:
https://developers.google.com/people/#a_merged_view_of_people_information

Editar:

Comando cURL:
cURL
curl --location --request GET 'https://people.googleapis.com/v1/people:searchDirectoryPeople?query=s&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=emailAddresses,names,phoneNumbers,photos' \
--header 'Authorization: Bearer <access-token>'

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está con el campo nombre que no se devuelve para la mayoría de las personas en el directorio al usar la API de Personas. Dos cuentas en la cuenta de GSuite proporcionan el campo de nombre, mientras que otras no lo hacen. Sin embargo, otros detalles como direcciones de correo electrónico y números de teléfono están disponibles para todos.

    Parece que cambiar la configuración de Compartir directorio externo de la opción predeterminada a Datos públicos y campos básicos del perfil de usuario autenticado resulta en un error PERMISSION_DENIED.

    Una solución que se ha encontrado es crear una cuenta de Google Currents para un usuario en el directorio para que el campo de nombre esté disponible para este usuario. Sin embargo, una vez que se elimina o desactiva la cuenta, el campo de nombre ya no está disponible.

    La API de Personas utilizada es:

    GET https://people.googleapis.com/v1/people:searchDirectoryPeople?query=a&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=emailAddresses,names,phoneNumbers,photos
    

    Parece que no hay un control más detallado para campos individuales al usar la configuración Compartir directorio externo → Dominio y datos públicos.

    Hasta ahora, se ha consultado la siguiente documentación:

    También se ha proporcionado un comando cURL como referencia:

    curl --location --request GET 'https://people.googleapis.com/v1/people:searchDirectoryPeople?query=s&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_CONTACT&sources=DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE&readMask=emailAddresses,names,phoneNumbers,photos' \
    --header 'Authorization: Bearer <access-token>'

Comments are closed.