2012-05-02 7 views
4

でTwitterの枠組みからハンドルの取得します完全なアカウントを必要としていないので、Twitterアカウントで設定している場合は、Twitterアカウントの名前が必要です。だから、ちょうどさえずりが任意のユーザー権限を求めることなく、フレームワーク(ない完全なアカウント)からを扱うを取得する方法はありますか?は、私は次のように行うことができるのiOS 5にTwitterのフレームワークを使用して設定Twitterアカウントへのアクセスを取得することを知っているのTwitterがiOSの

答えて

1

ユーザーは、これらのアカウントにアクセスする権限をユーザーに付与することなく、どのアカウントにもアクセスすることはできません。新しいプロジェクトのアプリケーションデリゲートで次のことを試してください。そのため、Twitterアカウントにアクセスする権限がアプリに与えられていないことがわかります。もちろん、デバイスやシミュレータに少なくとも1つのツイッターアカウントがあり、プロジェクトとアプリケーションデリゲートにインポートされたアカウントフレームワークがあることを確認してください。また、ユーザーは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); 
    } 
}]; 

を、Appleがユーザーに権限を付与するユーザーを頼む理由がありますアカウント。そのアクセスが許可されていない場合は、データを戻すことはありません。

+0

ええ!私はこれを知っている。今、私は完全なアカウントを必要としないときでも、「ユーザー権限のポップアップ」を通過する方法はないと思う。私はちょうどtwitterアカウントで設定されている場合、ユーザーのtwitterハンドルを望んでいました。 – defactodeity

+0

これは、私が、それがなぜであるかについて、より多くのコード例で答えることを試みたものです。 [accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL付与、NSError *エラー)は、 – Michael

+0

に対してtrueを返します。ありがとうございました。Michael、私はすでにそれをすべて試していました..しかし私はおそらくAppleが2つの別々のアカウントのアクセスモードを持っていることを期待していた。 1)Twitterのユーザー名を読み、知ることができる。 2)アカウントにすべてのデータを読み書きしたり投稿できるフルTwitterアカウントを持つことができます。 – defactodeity

関連する問題