0

TWTweetComposeViewController クラスを使用する IOS 5.x。すべてがうまくいっている

 if ( [TWTweetComposeViewController canSendTweet] )

ユーザーが Twitter でアプリへのアクセスを取り消さない限り、上記は依然として当てはまり、ツイートを送信しようとするとエラー メッセージが表示されます。

Cannot be sent because the connection to Twitter failed.

これは、ユーザーが SETTINGS / TWITTER / USERNAME に移動すると修正できます。

メッセージが出てきます

The user name of password is incorrect.

パスワードを再入力すると、アプリは Twitter で再認証され、すべてが正常に戻ります。

1)プログラム制御下でエラーをキャプチャし、ユーザーに設定をやり直すように通知する方法はありますか?

2) アプリが失効しているのに canSendTweet が true なのはなぜですか?

4

2 に答える 2

1

1) いいえ、システム レベルの問題であるため、アプリのサンドボックスから直接制御または管理できるものではありません

2) canSendTweet は、そのデバイスで Twitter にアクセスできること、およびアカウントが設定されていることを確認するだけです。ユーザーが自分の Twitter アカウントへのアクセスを許可したかどうかを識別することは意図されていません。

アプリがユーザーの twitter にアクセスできるかどうかを知りたい場合は、次を使用する必要があります。

- (void)requestAccessToAccountsWithType:(ACAccountType *)accountType 
                  withCompletionHandler:(ACAccountStoreRequestAccessCompletionHandler)handler;

アカウント フレームワークにあります。

#import <Accounts/Accounts.h>

例として、これはそれを行う1つの方法です:

        accountStore = [[ACAccountStore alloc] init];
        twitterAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

[accountStore requestAccessToAccountsWithType:twitterAccountType 
                     withCompletionHandler:^(BOOL granted, NSError *error) {
                         if (!granted) {
                            // Access denied by the user - do what you need to do
                             NSLog(@"Authenticated : User rejected access to his account.");
                         } 
                         else {
                             // Access granted
                             // Do what you want here to send the tweet or whatever
                         } 
                     }];
于 2012-06-26T19:21:15.630 に答える