1

私は iOS の Facebook 統合を使用して、ユーザーが Facebook アカウントでサインインできるようにしています。

ユーザーの氏名を取得中に問題が発生しました。

ACAccountのタイプを作成していACAccountTypeIdentifierFacebookます。

いくつか検索した後、フルネームを取得するためにこの小さなスニペットを見つけました:

// account is an ACAccount instance
NSDictionary *properties = [account valueForKey:@"properties"];
NSString *fullName = properties[@"fullname"];

私はそれをテストしましたが、うまくいきました。複数のデバイスで動作しました。

その後、クライアントに送信し、インストールしましたが、機能しませんでした。

数日間のテストの後、同僚から iPhone で発生しているエラーを取得することができました。

fullname簡単なデバッグ セッションの後、キーが存在しないことがわかりました。代わりに、他に 2 つのキーACPropertyFullNameACUIAccountSimpleDisplayName.

フルネームを取得するための私のコードは次のとおりです。

NSDictionary *properties = [account valueForKey:@"properties"];
NSString *nameOfUser = properties[@"fullname"];
if (!nameOfUser) {
    nameOfUser = properties[@"ACUIAccountSimpleDisplayName"];
    if (!nameOfUser) {
        nameOfUser = properties[@"ACPropertyFullName"];
    }
}

したがって、私の質問は実際には3つの部分に分かれています。

  1. キーで同じことが起こる可能性はuidありますか?もしそうなら、どのようなキーが存在する可能性がありますか?

  2. フルネームを取得するための他のキーはありますか?

  3. Twitter でも同じことが起こりますか、それとも常に同じキーを使用しますか?

ありがとうございます。

4

1 に答える 1