从 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 帐户访问用户个人资料图片的主要内容,如果未能解决你的问题,请参考以下文章

更改 iOS 模拟器 iCloud 帐户

确定用户何时创建 Facebook 帐户

使用 CloudKit/iCloud 时 Apple Store 构建被拒绝

CloudKit 使用的云账号

我可以将 CloudKit 与不同的 iCloud 帐户一起使用吗

是否可以制作 Xcode 应用程序来登录 iCloud