gpt4 book ai didi

icloud - 通过 CloudKit JS 从 iCloud 联系人获取地址

转载 作者:行者123 更新时间:2023-12-04 01:11:13 25 4
gpt4 key购买 nike

我希望我的 Web 应用程序允许从 iCloud 联系人导入用户联系人(特别是地址)。

类似于 Google People API 的东西提供谷歌通讯录。

场景是,用户使用 访问我的站点。桌面浏览器并导入他们的所有联系人。
因此,用户不应浪费时间键入所有联系人以便能够在网站上使用它们。

我正在尝试使用 CloudKit JS 来解决这个问题。

看起来像 .discoverAllUserIdentities是我需要的:

GET users/discover: Fetches all user identities in the current user’s address book, described in Discovering All User Identities (GET users/discover)



但是,我得到的是空集:
{"users":[]}

Web 应用程序似乎没有获取联系人的权限。如果是这样,如何请求权限?

或者可能是我完全错误的方式,如果问题可以解决,请指出我正确的方向。

最佳答案

更新的答案

由于您没有构建 native Web 应用程序,因此您无法请求访问用户的 iCloud 联系人。如果允许网站访问用户数据,这将是一场安全噩梦。有像 ShuttleCloud 这样的工具提供用于迁移用户联系人的 API。这就是 Google 用于他们自己的 Gmail 服务的内容。

所以不,您不能通过浏览器请求直接访问联系人,但是有一些工具可以让导入变得更容易。

旧答案

您需要向 iOS 请求许可。您可以查看 Apple 的 documentation .

例子

#import <AddressBookUI/AddressBookUI.h>

// Request authorization to Address Book
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
// First time access has been granted, add the contact
[self _addContactToAddressBook];
} else {
// User denied access
// Display an alert telling user the contact could not be added
}
});
}
else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
// The user has previously given access, add the contact
[self _addContactToAddressBook];
}
else {
// The user has previously denied access
// Send an alert telling user to change privacy setting in settings app
}

关于icloud - 通过 CloudKit JS 从 iCloud 联系人获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39144365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com