2 votes

Applescript - Contacts : Pourquoi puis-je obtenir des adresses et des e-mails à partir d'un contact mais pas des numéros de téléphone

Erreurs lors de l'obtention des téléphones

Dans Script Editor, si j'exécute :

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

le résultat est :

"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:foobar@gmail.com
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
"

Notez que cette personne a une adresse e-mail et un numéro de téléphone. Si j'exécute :

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

le résultat est :

{"foobar@gmail.com"}

Cependant, si j'exécute :

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

Je reçois

erreur "Contacts a obtenu une erreur : Impossible d'obtenir la valeur de chaque téléphone de la personne 301." numéro -1728 de la valeur de chaque téléphone de personne 301

et si j'exécute

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

erreur "Contacts a obtenu une erreur : Échec du gestionnaire AppleEvent." numéro -10000

Que se passe-t-il si la personne n'a pas de numéro de téléphone ?

Édition : Sur la base d'une des réponses proposées à ce post, j'ai essayé

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

ce qui m'a donné quelque chose comme

{valeur manquante, {}, valeur manquante, valeur manquante, ...}

avec beaucoup plus de "valeurs manquantes" et "{}" car j'ai environ 2000 entrées dans la base de données.

En enquêtant sur cela, j'ai découvert que la "valeur manquante" apparaît pour les personnes qui ont des numéros de téléphone, et les "{}" apparaissent pour les personnes qui n'ont pas de numéros de téléphone. Si j'exécute la même commande avec "emails", je reçois une liste d'adresses e-mail pour chaque personne qui a des e-mails, et une liste vide "{}" pour les personnes qui n'en ont pas.


Cela se passe sur Mac OS 10.13.6, Contacts 11.0 (1808.8).

Ai-je découvert un bug ou y a-t-il quelque chose qui ne va pas avec mon script ?

-1voto

wch1zpink Points 6067

Cela devrait fonctionner pour vous...

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

end tell

Cela fonctionne également pour moi...

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

Vous pouvez également essayer d'exécuter ce code suivant

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

Ensuite, vous irez à l'élément 301 de ce résultat et s'il n'y a pas de numéro de téléphone... Cela pourrait être la raison pour laquelle vous obtenez l'erreur.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X