Applescript - Contactos: ¿Por qué puedo obtener direcciones y correos electrónicos de un contacto pero no de los teléfonos?

2

Errores al obtener teléfonos

En el Editor de secuencias de comandos, si ejecuto:

tell application "Contacts" to get the vcard of person 301

el resultado es:

"BEGIN:VCARD VERSION:3.0 PRODID:-//Apple Inc.//Mac OS X 10.13.6//EN
N:Bar;Foo;;; FN:Foo Bar
EMAIL;type=INTERNET;type=WORK;type=pref:[email protected]
TEL;type=HOME;type=VOICE;type=pref:555 555 1212
CATEGORIES:Address Book
UID:1e6e6e410a662666
X-ABUID:18B18941-E2B7-48CE-BB34-4A26CC0E23BB:ABPerson
END:VCARD
"

Tenga en cuenta que esta persona tiene una dirección de correo electrónico y un número de teléfono. Si corro:

tell application "Contacts" to get the value of emails of person 301

el resultado es:

  

{"[email protected]"}

Sin embargo si ejecuto:

tell application "Contacts" to get the value of phones of person 301

me sale

  

error "Los contactos recibieron un error: no se puede obtener el valor de todos los teléfonos de la persona 301". número -1728 desde el valor de cada teléfono de persona 301

y si corro

tell application "Contacts" to get the phones of person 301
  

error "Los contactos obtuvieron un error: el controlador AppleEvent falló". número -10000

¿Qué sucede si la persona no tiene un número de teléfono?

Editar: Basado en una de las respuestas propuestas a esta publicación, lo intenté

tell application "Contacts"
    set thePhoneNumber to value of phones of people
end tell

que me dio algo como

  

{ valor faltante , {}, valor faltante , valor faltante , ...}

con muchos más "valores perdidos" y "{} s" porque tengo aproximadamente 2000 entradas en la base de datos.

Al investigar esto, descubrí que el "valor faltante" aparece para las personas que tienen números de teléfono y que "{}" aparece para las personas que no tienen números de teléfono. Si ejecuto el mismo comando con "correos electrónicos", obtengo una lista de direcciones de correo electrónico para cada persona que tiene correos electrónicos, y una lista vacía "{}" para las personas que no lo tienen.

Esto está en Mac OS 10.13.6, Contactos 11.0 (1808.8).

¿He descubierto un error o hay algún problema con mi script?

    
pregunta highfalutin 09.09.2018 - 03:23

1 respuesta

-1

Esto debería funcionar para ti ...

tell application "Contacts"
    launch
    delay 1
    tell its person 301
        try
            set thePhoneNumber to value of phones
        end try
    end tell
end tell

Esto también funciona para mí ...

tell application "Contacts"
    set thePhoneNumber to value of phones of its person 301
end tell

También puedes intentar ejecutar este código siguiente

tell application "Contacts"
    set thePhoneNumber to value of phones of people
end tell

Luego irá al ítem 301 de ese resultado y, si no hay un número de teléfono ... Puede que sea por eso que está recibiendo el error.

    
respondido por el wch1zpink 09.09.2018 - 04:47

Lea otras preguntas en las etiquetas