1

ACAccountStore在 iOS5 上创建和保存新的 Twitter 帐户时遇到问题。

执行所有步骤以初始化帐户后,ACAccountStore's saveAccount:withCompletionHandler:返回NSURLErrorDomain error -1012

有没有人有类似的问题?

我下面的代码示例是使用 requestToken 来初始化ACAccountCrendential。此对象是一个OAToken(ShareKit 对象),使用完成后从 twitter 收到的令牌和秘密进行初始化OAuth

    ACAccountStore *store = [[[ACAccountStore alloc] init] autorelease];
    ACAccountType *twitterAccountType = [store accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    ACAccount *account = [[[ACAccount alloc] initWithAccountType:twitterAccountType] autorelease];

    account.username = @"twitterusername";
    account.credential = [[[ACAccountCredential alloc] initWithOAuthToken:requestToken.key tokenSecret:requestToken.secret] autorelease]; 
    [store requestAccessToAccountsWithType:twitterAccountType withCompletionHandler:^(BOOL granted, NSError *error) {
        if (granted) {
            [store saveAccount:account withCompletionHandler:^(BOOL success, NSError *error) {
                if (success) {
                    NSLog(@"TWITTER ACCOUNT CREATED SUCCESSFULLY!");
                }
                else{
                    NSLog(@"ERROR creating twitter account: %@", [error description]);
                }
            }];
        }
    }]; 

奇怪的是,Apple 的Accounts Framework Reference建议saveAccount:withCompletionHandler:尝试OAuth自行执行:

如果帐户类型支持身份验证并且帐户未通过身份验证,则使用其凭据对帐户进行身份验证。如果认证成功,则保存账号;否则,它不会被保存。

我觉得这很奇怪,因为用户无法通过输入用户名/密码直接向服务器进行身份验证。

我还尝试ACAccountCredential使用我的应用程序的消费者密钥和消费者秘密进行初始化,结果相同(失败NSURLErrorDomain error -1012.

任何有关此主题的指导将不胜感激!

谢谢。

4

1 回答 1

2

我在使用 ACAccount 添加 Twitter 帐户时遇到了同样的问题。但是,我能够使用授权的 OAuth 访问令牌和访问令牌秘密,而不是消费者密钥和消费者秘密,成功地创建了一个带有 ACAccount 的 Twitter 帐户。(dev.twitter.com/apps->Twitter->OAuth->OAuth Setting-->Access token and Access token secret) 这意味着你仍然需要使用 OAuth 库来获取授权的 Access token 和 Access token secret用户正在添加 Twitter 帐户。

更新:您可以在此处查看 Twitter 如何建议您将现有帐户迁移到 iOS5 系统帐户。该链接为我提供了如何添加 ACAccount 的最佳示例。

于 2011-12-01T09:35:54.603 回答