Twitter登录未在我的ios应用程序中打开登录窗口

Posted

技术标签:

【中文标题】Twitter登录未在我的ios应用程序中打开登录窗口【英文标题】:Twitter Login not Open Login Window in my ios app 【发布时间】:2013-12-05 13:38:52 【问题描述】:

我想在我的 ios 应用中实现 Twitter 登录。并将用户凭据保存在我的应用程序中。我已经完成了 Twitter Developer 的所有 Twitter 设置。并获取消费者密钥和秘密密钥。将其保存到 Plist 中。我在单击按钮时尝试了此代码,但未在我的 iOS 应用程序中打开 Twitter 登录窗口。为什么会这样。

我试过这个代码

    ACAccountStore *account = [[ACAccountStore alloc] init];
    ACAccountType *accountType = [account accountTypeWithAccountTypeIdentifier:
                                  ACAccountTypeIdentifierTwitter];

    [account requestAccessToAccountsWithType:accountType options:nil
                                  completion:^(BOOL granted, NSError *error)
     
----------> Debuger not going here         if (granted == YES)
         
             NSArray *arrayOfAccounts = [account
                                         accountsWithAccountType:accountType];


             if ([arrayOfAccounts count] > 0)
             
                 ACAccount *twitterAccount =
                 [arrayOfAccounts lastObject];
                 NSLog(@"11111111----%@",[[twitterAccount valueForKey:@"properties"]valueForKey:@"user_id"]);


                 NSDictionary *message = @@"status": @" First Twitter post from iOS6";

                 NSURL *requestURL = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"];

                 SLRequest *postRequest = [SLRequest
                                           requestForServiceType:SLServiceTypeTwitter
                                           requestMethod:SLRequestMethodPOST
                                           URL:requestURL parameters:message];

                 postRequest.account = twitterAccount;

                 [postRequest
                  performRequestWithHandler:^(NSData *responseData,
                                              NSHTTPURLResponse *urlResponse, NSError *error)
                  
                      NSLog(@"Twitter HTTP response: %i",
                            [urlResponse statusCode]);
                  ];
             
         
     ];

请帮我解决这个问题。提前致谢。

【问题讨论】:

【参考方案1】:

----------> Debuger not going here if (granted == YES)

可能是您没有在 iOS 的设置中配置您的 twitter 帐户。

或者当 twitter 弹出窗口出现时,您没有通过单击 Disallow 来允许您的应用程序访问 twitter。

交叉检查(模拟器):Settings->Privacy->Twitter 您的应用是否出现在列表中?如果没有,请删除它并重试。

工作代码:

    accountStore = [[ACAccountStore alloc] init]; // Declare it in .h file (for testing)
    ACAccountType *twitterAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
    NSArray *twitterAccounts = [accountStore accountsWithAccountType:twitterAccountType];

    // Runing on iOS 6
    if (NSClassFromString(@"SLComposeViewController") && [SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
    
        [accountStore requestAccessToAccountsWithType:twitterAccountType options:NULL completion:^(BOOL granted, NSError *error)
         
             if (granted) // User already login in default Twitter application
             
             
         ];
    

【讨论】:

FBLogin 是什么? 对不起,这是我的错误......这不是错误......当用户点击 twiiter 按钮操作时没有发生任何事情...... @Namo:检查更新的答案。请在.h 文件中声明accountStore

以上是关于Twitter登录未在我的ios应用程序中打开登录窗口的主要内容,如果未能解决你的问题,请参考以下文章

将 FirebaseUI 与 Twitter 登录一起使用(iOS 应用)

为 IOS 4.3 集成 Twitter SDK

什么是阻止用户每次打开我的应用程序时都必须使用 Twitter Digits 登录的安全方法?

Twitter登录按钮的问题

如何在 iOS 中使用 Twitter Kit/Fabric 从登录用户获取用户个人资料图片

iOS应用程序中的twitter segue转换问题