私は iOS の Facebook 統合を使用して、ユーザーが Facebook アカウントでサインインできるようにしています。
ユーザーの氏名を取得中に問題が発生しました。
ACAccount
のタイプを作成していACAccountTypeIdentifierFacebook
ます。
いくつか検索した後、フルネームを取得するためにこの小さなスニペットを見つけました:
// account is an ACAccount instance
NSDictionary *properties = [account valueForKey:@"properties"];
NSString *fullName = properties[@"fullname"];
私はそれをテストしましたが、うまくいきました。複数のデバイスで動作しました。
その後、クライアントに送信し、インストールしましたが、機能しませんでした。
数日間のテストの後、同僚から iPhone で発生しているエラーを取得することができました。
fullname
簡単なデバッグ セッションの後、キーが存在しないことがわかりました。代わりに、他に 2 つのキーACPropertyFullName
とACUIAccountSimpleDisplayName
.
フルネームを取得するための私のコードは次のとおりです。
NSDictionary *properties = [account valueForKey:@"properties"];
NSString *nameOfUser = properties[@"fullname"];
if (!nameOfUser) {
nameOfUser = properties[@"ACUIAccountSimpleDisplayName"];
if (!nameOfUser) {
nameOfUser = properties[@"ACPropertyFullName"];
}
}
したがって、私の質問は実際には3つの部分に分かれています。
キーで同じことが起こる可能性は
uid
ありますか?もしそうなら、どのようなキーが存在する可能性がありますか?フルネームを取得するための他のキーはありますか?
Twitter でも同じことが起こりますか、それとも常に同じキーを使用しますか?
ありがとうございます。