use*_*159 12 icloud icloud-api cloudkit
我希望我的Web应用程序允许从iCloud联系人导入用户联系人(特别是地址).
类似于Google People API为Google通讯录提供的内容.
方案是,用户使用桌面浏览器访问我的网站并导入其所有联系人.
因此,用户不应该浪费时间键入所有联系人,以便能够在网站上使用它们.
我正在尝试使用CloudKit JS来解决这个问题.
看起来.discoverAllUserIdentities就是我所需要的:
获取用户/发现:获取当前用户的地址簿中的所有用户身份,如发现所有用户身份(GET用户/发现)中所述
但是,我得到空集:
{"users":[]}
似乎Web应用程序没有获取联系人的权限.如果是这样,如何申请权限?
或者可能是我完全错误的方式,如果问题可以解决,请指出正确的方向.
由于您不是构建本机 Web 应用程序,因此您无法请求访问用户的 iCloud 联系人。如果允许网站访问用户数据,这将是一场安全噩梦。ShuttleCloud等工具提供了用于迁移用户联系人的 API。Google 将其用于自己的 Gmail 服务。
因此,不,您无法请求通过浏览器直接访问联系人,但有一些工具可以使导入内容变得更容易。
您需要征求 iOS 的许可。您可以通过查看 Apple 的文档来执行此操作。
#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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |