4

iOS 5でTwitterフレームワークを使用して構成済みのTwitterアカウントにアクセスするには、次の操作を実行できます。

ACAccountStore *t_account = [[ACAccountStore alloc] init];
ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[account requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
    if (granted == YES) {
    }
}

しかし、問題は、完全なアカウントが必要ないことです。彼がTwitterアカウントでアカウントを構成している場合は、Twitter名が必要です。それで、ユーザーの許可を求めずに、フレームワーク(完全なアカウントではなく)からTwitterハンドルだけを取得する方法はありますか?

4

1 に答える 1

1

ユーザーがそれらのアカウントへのアクセスを許可しない限り、アカウントにアクセスすることはできません。新しいプロジェクトのアプリデリゲートで次のことを試してみてください。そうすれば、アプリにTwitterアカウントへのアクセス許可が与えられていないことがわかります。もちろん、デバイスまたはシミュレーターに少なくとも1つのTwitterアカウントがあり、アカウントフレームワークがプロジェクトとアプリデリゲートにインポートされていることを確認してください。また、ユーザーがTwitterアカウントを1つだけ持っていると想定しています。ユーザーが複数のアカウントを持っている可能性がある場合にコーディングするのが最適です。

    ACAccountStore *accountStore = [[ACAccountStore alloc] init];

    // Create an account type that ensures Twitter accounts are retrieved.
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

    NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];

    for (ACAccount *account in accountsArray ) {
        NSLog(@"Account name: %@", account.username);
    }

    NSLog(@"Accounts array: %d", accountsArray.count);

次に、ユーザーが権限を付与したときに結果を返すようにコードを変更します。

    ACAccountStore *accountStore = [[ACAccountStore alloc] init];

    // Create an account type that ensures Twitter accounts are retrieved.
    ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

    [accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {

    if(granted) {

        NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];

        for (ACAccount *account in accountsArray ) {
            NSLog(@"Account name: %@", account.username);
        }

        NSLog(@"Accounts array: %d", accountsArray.count);
    }
}];

つまり、簡単な答えは、アップルがユーザーにユーザーアカウントへのアクセス許可を求める理由があるということだと思います。そのアクセスが許可されていない場合、データを取り戻すことはできません。

于 2012-09-05T07:32:34.400 に答える