Continuando con la Guía iPhone/iPad, ahora veremos como vincular en nuestro proyecto con una de las redes sociales más populares en estos días, Twitter.

Características de la API de Twitter

  • Limita por día el número de actualizaciones, mensajes directos y solicitudes de “Follow”.
  • Se basa completamente en HTTP, por lo tanto implementa los métodos GET y POST.
  • Intenta conservar los principios de diseño de la Transferencia de Estado Representacional (REST). En la documentación se establecen los formatos disponibles para cada uno de los métodos. Dentro de estos formatos de datos se encuentran: XML, JSON, RSS, ATOM.
  • Una línea de comando es todo lo que se requiere para empezar a usar la API.
  • Ofrece un gran número de Librerías disponibles para el lenguaje de programación de tu preferencia.

Iniciando Twitter en nuestra aplicación

A continuación implementaremos una clase que nos permita enviar y recibir información a Twitter desde nuestras aplicaciones :

1. Utilizaremos las librerias “Twitter+OAuth” que se pueden descargar desde aquí

2. Descomprimir y agregar la carpeta “Twitter+OAth” al proyecto:


3. Agregar la libreria “libxml2.dylib”


4. Agregar la ruta en “Header Search Path”

5. Crear un botón para el inicio de sesión en twitter

6. Importar las librerias en nuestro código en ViewController.h

#import <UIKit/UIKit.h>

#import "SA_OAuthTwitterController.h"

@class SA_OAuthTwitterEngine;

@interface ViewController : UIViewController <SA_OAuthTwitterControllerDelegate>
{
SA_OAuthTwitterEngine    *_engine;
}

@property (nonatomic, retain) SA_OAuthTwitterEngine *_engine;

- (IBAction)postTwitter;
- (void)sendTweet;
@end

7. Definir las funciones definidas previamente en ViewController.m

@synthesize _engine;

#pragma mark Twitter

- (IBAction)postTwitter
{
if(!_engine)
{
_engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];
_engine.consumerKey    = kOAuthConsumerKey;
_engine.consumerSecret = kOAuthConsumerSecret;
}

UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];

if (controller)
{
[self presentModalViewController:controller animated:YES];
}
else
[self sendTweet];
}

- (void)sendTweet
{
NSString  *mensaje = @"Excelente la Guia para iPhone y iPad de @maestros :)";

[_engine sendUpdate:mensaje];

UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Posted To Twitter"
message:mensaje
delegate:self
cancelButtonTitle:@"Accept"
otherButtonTitles:nil];
[alertView show];
[alertView release];
}

#pragma mark SA_OAuthTwitterEngineDelegate

- (void) storeCachedTwitterOAuthData: (NSString *) data forUsername: (NSString *) username
{
NSUserDefaults            *defaults = [NSUserDefaults standardUserDefaults];

[defaults setObject: data forKey: @"authData"];
[defaults synchronize];

UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Twitter Authentication"
message:@"Logged correctly. Please press again the twitter button to send message."
delegate:self
cancelButtonTitle:@"Accept"
otherButtonTitles:nil];
[alert show];
[alert release];

}

- (NSString *) cachedTwitterOAuthDataForUsername: (NSString *) username
{
return [[NSUserDefaults standardUserDefaults] objectForKey: @"authData"];
}

#pragma mark TwitterEngineDelegate

- (void) requestSucceeded: (NSString *) requestIdentifier
{
NSLog(@"Request %@ succeeded", requestIdentifier);
}

- (void) requestFailed: (NSString *) requestIdentifier withError: (NSError *) error
{
NSLog(@"Request %@ failed with error: %@", requestIdentifier, error);
}

8. Compilamos y ejecutamos

Si ha salido todo bien, probablemente tengas experiencia con Objective-C, porque he saltado algunas cosas para no hacer tan extenso el artículo. Igualmente aquí esta el proyecto con la clase implementada para hacer “Build and Run” :)

Repositorio en GitHub : MDW-GuiaiOS08-Twitter