Guía iOS: Trabajando con el API de twitter
Actualizado : 21 octubre 2011 (iOS 5)
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
Buenísimo, seguimos adelante!
Consulta: No seria bueno ver mas sobre interface, componentes manejo de pantallas, están buenísimas estas clases pero me quedo medio incompleto.
Saludos y gracias por todo!
Opino lo mismo que mi compañero anterior.
Por lo menos yo, no sabría cómo vincular lo anterior a la interfaz. El iPhone no es puro código, considerando que esta guía nos ayudaría a crear nuestras aplicaciones.
Éxito!
[…] Guía iPhone e iPad: Trabajando con el API de twitter […]
Opino lo mismo con los demas compañeros deveriamos de ir desasiendo por partes la Api por lo menos lo que es lo basico con respecto a la interefaz y cosas asi
Muchas gracias por sus comentarios. Si, actualmente ya estamos trabajando para cubrir varios temas del UIKit que tenemos pendientes y aunque no soy fanático de Interface Builder lo vincularemos más en las próximas guías, igual no dejen de comentar cualquier otra inquietud que tengan.
Después de los últimos cambios de la autentificación en Twitter el ejemplo funciona sólo parcialmente….
cuando consultas funciona correctamente:
—–
2010-09-07 22:57:10.200 TwitterAPI[462:207]
tag:search.twitter.com,2005:search/mejorandolaweb
…
—–
Pero cuando intentas autentificar…..
—–
2010-09-07 22:57:12.194 TwitterAPI[462:207]
Basic authentication is not supported
————
Gracias. Excelente ejemplo. ¿Pdrias poner un ejemplo con autentificacion oAuth?
De antemano Gracias