在iOS5上创建twitter ACAccount时出错:NSURLErrorDomain错误-1012

时间:2011-11-22 09:50:09

标签: iphone twitter ios5 accounts

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

执行完成帐户的所有步骤后,ACAccountStore's saveAccount:withCompletionHandler:会返回NSURLErrorDomain error -1012

有没有人有类似的问题?

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

    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.失败)

非常感谢有关此主题的任何指导!

感谢。

1 个答案:

答案 0 :(得分:2)

我在使用ACAccount添加Twitter帐户时遇到同样的问题。但是,我能够使用授权的OAuth访问令牌和访问令牌密钥,而不是使用消费者密钥和消费者密钥,成功创建具有ACAccount的Twitter帐户。 (dev.twitter.com/apps->Twitter->OAuth->OAuth设置 - >访问令牌和访问令牌机密)这意味着您仍然必须使用OAuth库来获取授权的访问令牌,用户添加Twitter帐户时访问令牌密钥。

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