名称: apple-contacts
描述: 从 macOS 通讯录应用(Contacts.app)中查找联系人。适用于将电话号码解析为姓名、查找联系信息或搜索通讯录。
元数据: {"clawdbot":{"emoji":"👤","os":["darwin"]}}
通过 AppleScript 查询通讯录应用(Contacts.app)。
# 通过电话号码查询(仅返回姓名)
osascript -e 'tell application "Contacts" to get name of every person whose value of phones contains "+1XXXXXXXXXX"'
# 通过姓名查询
osascript -e 'tell application "Contacts" to get name of every person whose name contains "John"'
# 列出所有联系人
osascript -e 'tell application "Contacts" to get name of every person'
⚠️ 避免使用 first person whose — 存在缺陷。请使用以下模式:
# 通过电话号码查询
osascript -e 'tell application "Contacts"
set matches to every person whose value of phones contains "+1XXXXXXXXXX"
if length of matches > 0 then
set p to item 1 of matches
return {name of p, value of phones of p, value of emails of p}
end if
end tell'
# 通过姓名查询
osascript -e 'tell application "Contacts"
set matches to every person whose name contains "John"
if length of matches > 0 then
set p to item 1 of matches
return {name of p, value of phones of p, value of emails of p}
end if
end tell'
⚠️ 需要完全匹配字符串 — 必须与存储的格式完全一致。
| 存储格式 | 搜索格式 | 是否有效 |
|---|---|---|
+1XXXXXXXXXX |
+1XXXXXXXXXX |
✅ |
+1XXXXXXXXXX |
XXXXXXXXXX |
❌ |
建议先尝试带 +1 前缀的格式。如果失败,可改用姓名进行搜索。
contains 进行部分匹配is 替代 contains返回逗号分隔的字符串:姓名, 电话1, [电话2...], 邮箱1, [邮箱2...]
若无匹配结果,则输出为空(不视为错误)。