18 Nov, 2011 20:17

Como integrar seu aplicativo com o Twitter no iOS 5

Antes dessa integração, já era possível compartilhar no Twitter usando suas APIs, mas o usuário precisava se autenticar pelo menos uma vez em cada aplicativo antes de compartilhar algo. Com a integração nativa, agora basta ele colocar seu usuário e senha uma vez nas configurações do aparelho e usar o mesmo login em todos os aplicativos que implementarem essa integração.

Implementando a integração

Existem duas formas de integrar o seu aplicativo com o Twitter no iOS 5. A mais complexa e flexível é utilizar a classe TWRequest, que é capaz de acessar a API do Twitter e suas mais diversas funcionalidades. A outra forma é bem mais rápida e prática, mas para um uso restrito, que utiliza a classe TWTweetComposeViewController. Trataremos nesse post apenas a segunda forma.

A primeira coisa que precisamos fazer é autenticar o usuário, para isso utilizamos o Accounts Framework, vale dizer que esse framework hoje só é usado pelo Twitter mas futuramente ele poderá ser usado por outras redes, como o facebook. Para usá-lo importe o framework Accounts.framework para o seu código e escreva no viewDidLoad da sua classe:

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

[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError* error) {

    ACAccount *account = [[ACAccount alloc] initWithAccountType:accountType];
    NSLog(@"%@, %@", account.username, account.description);
}];

Esse código vai solicitar a permissão do usuário para acessar a sua conta do Twitter:

Twitter no iOS

Se o usuário negar a permissão, a variável granted virá negativa no método de callback. O próximo passo é importar o framework Twitter.framework e usar o TWTweetComposeViewController para enviar o tweet. O código fica dessa forma:

if([TWTweetComposeViewController canSendTweet]) {

    TWTweetComposeViewController *controller = [[TWTweetComposeViewController alloc] init];
    [controller setInitialText:@"Testando a integracao com o Twitter"];
    controller.completionHandler = ^(TWTweetComposeViewControllerResult result)  {

        [self dismissModalViewControllerAnimated:YES];

        switch (result) {
            case TWTweetComposeViewControllerResultCancelled:                    
                break;

            case TWTweetComposeViewControllerResultDone:
                break;

            default:
                break;
        }
    };

    [self presentModalViewController:controller animated:YES];
}

O callback retorna se o tweet foi enviado ou cancelado. A tela do TWTweetComposeViewController é uma tela padrão:

Twitter no iOS

Como um usuário pode cadastrar várias contas na configuração do iOS 5, ele poderá escolher a conta na hora de twittar.

Cuidados com o iOS 4

Não podemos esquecer de que uma grande quantidade de aparelhos ainda possui o iOS 4, então é importante tomar os seguintes cuidados: importar os frameworks necessários (Twitter.framework e Accounts.framework) de forma opcional (ou weak) e verificar a existência das classes que não existem no iOS 4 antes de usá-las, conforme exemplo abaixo:

Class twitterClass = (NSClassFromString(@"TWTweetComposeViewControllerResult"));

// Verifica se a classe existe no sistema operacional
if (twitterClass != nil) {

Desta forma, você poderá usar a nova integração apenas nos aparelhos atualizados e continuar rodando o aplicativo nos aparelhos antigos.

Ao navegar neste site, você consente o uso de cookies nossos e de terceiros, que coletam informações anônimas e são essenciais para melhorar sua experiência em nosso site.