在ios 7中使用twitter登录

Jek*_*tel 1 twitter twitter-oauth acaccount social-framework ios7

我正在做登录功能.其中 -

  1. 用户将提供Twitter电子邮件ID登录,如果登录成功,我的应用程序将导航用户到我的应用程序的内部屏幕.

  2. 如果用户已从用户的设备ios设置配置了Twitter帐户.我的应用程序从那里获取用户的电子邮件ID,它将导航到我的应用程序的第二个屏幕.

  3. 如果用户尚未从ios设置配置Twitter帐户,那么,如果用户在我的应用程序登录屏幕上通过Twitter登录按钮,则会将用户导航到用户必须提供电子邮件ID(推特ID)和密码的推特页面.登录成功它应该回到我的应用程序的内部屏幕(与登录Facebook的功能相同).

我怎么能做到这一点.提前致谢.

Asa*_*Ali 5

首先,您无法使用iOS7框架或Twitter的Native API从twitter的API获取用户电子邮件地址.
如果您想获取用户电子邮件地址,可以要求用户手动输入.这就是Twitter人们在他们的API文档中所说的.对于Point 2和3,这里是使用iOS7方式的示例代码

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) // check Twitter is configured in Settings or not
{
    self.accountStore = [[ACAccountStore alloc] init]; // you have to retain ACAccountStore

    ACAccountType *twitterAcc = [self.accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];

    [self.accountStore requestAccessToAccountsWithType:twitterAcc options:nil completion:^(BOOL granted, NSError *error)
     {
         if (granted)
         {
             self.twitterAccount = [[self.accountStore accountsWithAccountType:twitterAcc] lastObject];
             NSLog(@"Twitter UserName: %@, FullName: %@", self.twitterAccount.username, self.twitterAccount.userFullName);
             [self getTwitterEmail]; // here you can ask user to enter email address. Its up to you how you ask user about it. Either in alert View or in Text Field.
         }
         else
         {
             if (error == nil) {
                 NSLog(@"User Has disabled your app from settings...");
             }
             else
             {
                 NSLog(@"Error in Login: %@", error);
             }
         }
     }];
}
else
{
    NSLog(@"Not Configured in Settings......"); // show user an alert view that Twitter is not configured in settings.
}
Run Code Online (Sandbox Code Playgroud)