从 iCloud 帐户访问用户个人资料图片
Posted
技术标签:
【中文标题】从 iCloud 帐户访问用户个人资料图片【英文标题】:Accessing user profile picture from iCloud account 【发布时间】:2016-04-11 20:57:41 【问题描述】:我正在尝试从用户的 iCloud 帐户中提取用户的个人资料图片。我正在使用 CloudKit 并正在验证用户是否拥有 iCloud 帐户以及请求可发现权限。我不确定这是可能的,但如果是的话,我想知道如何。以下是相关代码:
要验证 iCloud 帐户:
[[CKContainer defaultContainer] accountStatusWithCompletionHandler:^(CKAccountStatus accountStatus, NSError *error)
if (accountStatus == CKAccountStatusAvailable)
self.shouldLogin = YES;
else
self.shouldLogin = NO;
];
要从他们的 iCloud 帐户中提取他们的个人资料图片:
[[CKContainer defaultContainer] requestApplicationPermission:CKApplicationPermissionUserDiscoverability completionHandler:^(CKApplicationPermissionStatus applicationPermissionStatus, NSError * _Nullable error)
if (applicationPermissionStatus == CKApplicationPermissionStatusGranted)
[[CKContainer defaultContainer] discoverUserInfoWithUserRecordID:self.dataStore.user.userID completionHandler:^(CKDiscoveredUserInfo * _Nullable userInfo, NSError * _Nullable error)
NSData *imageData = userInfo.displayContact.imageData;
UIImage *profileImage = [UIImage imageWithData:imageData];
self.profileImageView.image = profileImage;
];
];
【问题讨论】:
我不明白这个问题?这段代码有效吗?是还是不是?它报告和错误,只是什么都不提供?你确定这个数据存在于CK中吗?能给个技术参考吗?这是公共 API 还是私有的越界 API? 【参考方案1】:您只能获得唯一 ID 加上 iCloud 用户的名字和姓氏。如果您想了解更多信息,则必须向所有用户询问该数据。
【讨论】:
谢谢 Edwin,我该怎么做呢?还是您的意思是我需要让用户通过某种过程来选择个人资料图片? 是的,这就是我的意思。无法获取其他 iCloud 帐户信息。如果您想要更像个人资料图片,那么您必须要求所有用户在您的应用中上传个人资料图片。以上是关于从 iCloud 帐户访问用户个人资料图片的主要内容,如果未能解决你的问题,请参考以下文章
使用 CloudKit/iCloud 时 Apple Store 构建被拒绝