我正在使用 iOS 的 Facebook 集成来允许用户使用他们的 Facebook 帐户登录。
我在获取用户全名时遇到了问题。
我正在创建一个ACAccount
type ACAccountTypeIdentifierFacebook
。
经过一番搜索,我发现了这个小片段来获得全名:
// account is an ACAccount instance
NSDictionary *properties = [account valueForKey:@"properties"];
NSString *fullName = properties[@"fullname"];
我测试了它,它工作。它适用于多种设备。
然后我们将它发送给我们的客户,他安装了它,但它没有工作。
经过几天的测试,我能够从同事那里得知 iPhone 上发生的错误。
经过快速调试会话后,我发现fullname
密钥不存在。取而代之的是另外两个键,ACPropertyFullName
和ACUIAccountSimpleDisplayName
。
现在我获得全名的代码是:
NSDictionary *properties = [account valueForKey:@"properties"];
NSString *nameOfUser = properties[@"fullname"];
if (!nameOfUser) {
nameOfUser = properties[@"ACUIAccountSimpleDisplayName"];
if (!nameOfUser) {
nameOfUser = properties[@"ACPropertyFullName"];
}
}
所以我的问题实际上分为三个部分:
密钥是否可能发生同样的事情
uid
,如果是这样,存在哪些可能的密钥?是否有任何其他键可以获得全名?
Twitter 上是否也会发生同样的事情,或者它总是使用相同的密钥?
谢谢大家。