Tutorial iOS: Realizando buscas por Hashtag na Api 1.1 do Twitter

On 17 de março de 2014 by Conrado Carneiro

Recentemente a API do Twitter foi atualizada para a versão 1.1, com isso alguns procedimentos foram alterados, realizar busca por HashTag é uma delas.

Neste tutorial irei ensinar a realizar buscas por HashTags no Twitter sem que haja a necessidade do usuário estar logado com sua conta.

Iremos utilizar um framework chamado STTwitter, para instala-lo basta seguir o tutorial: Adicionando Um Framework Ao Projeto Do XCode Com O CocoaPods  publicado anteriormente em nosso blog.

Depois de instalado o Framework vamos ao que interessa, como utiliza-lo.

Atenção: O arquivo do projeto que deverá ser utilizado possui o formato “.xcworkspace”

Para testar se o Framework foi adicionado com sucesso, basta adicionar a biblioteca STTwitter.h

[sourcecode language=”objc” wraplines=”false” collapse=”false”]
#import <STTwitter.h>
[/sourcecode]

Em seguida crie dois objectos, um do tipo STTwitter que será o responsável em realizar a comunicação com os servidores do Twitter e um do tipo NSArray que irá armazenar os resultados.

[sourcecode language=”objc” wraplines=”false” collapse=”false”]
@property (nonatomic, strong) STTwitterAPI *twitter;
@property (nonatomic, strong) NSArray *results;
[/sourcecode]

Feito isso, na função viewDidLoad, iremos registrar o objeto STTwitter com o Consumer Key e Consumer Secret, esses valores podem ser obtidos na página de Desenvolvedor do Twitter, basta cadastrar seu programa para que ele tenha acesso aos resultados do Twitter.

Dica Rápida: Após cadastrar seu programa, entre nas configurações na página de Desenvolvedor do Twitter, conforme mostrado a seguir e clique na opção Test OAuth. 
Screen Shot 2014-03-17 at 14.59.24

Pronto, será exibido o Consumer Key e Consumer Secret que iremos precisar na nossa aplicação:

Screen Shot 2014-03-17 at 15.01.39

O Código da função ViewDidLoad ficará assim:

[sourcecode language=”objc” wraplines=”false” collapse=”false”]
– (void)viewDidLoad
{
[super viewDidLoad];
twitter = [STTwitterAPI twitterAPIAppOnlyWithConsumerKey:@"ysMF21l8nwklyM6QCtvUDw"
consumerSecret:@"mpDQtaXdzlG8rouDy9GvobY0g926IkkKhM1aTSeNB8A"];
}
[/sourcecode]

Agora, vamos criar uma função para configurar o objeto STTwitter com as informações que desejamos pesquisar no Twitter e fazer a solicitação.
No Exemplo a seguir, realizamos uma pesquisa pelos últimos 2 twits que possuem a palavra UFOP.

[sourcecode language=”objc” wraplines=”false” collapse=”false”]
– (void) refreshTwitter {
NSLog(@"twitter");
[twitter verifyCredentialsWithSuccessBlock:^(NSString *bearerToken) {
[twitter getSearchTweetsWithQuery:@"UFOP"
geocode:nil
lang:nil
locale:nil
resultType:nil
count:@"2"
until:nil
sinceID:nil
maxID:nil
includeEntities:nil
callback:nil
successBlock: ^(NSDictionary *searchMetaData, NSArray *statusesConrado){
self.results = statusesConrado;
NSString *user;
NSString *comment;
NSString *img;
NSString *date;
for (NSDictionary *twit in self.results) {
user = [twit valueForKeyPath:@"user.screen_name"];
comment = [twit valueForKey:@"text"];
img = [twit valueForKeyPath:@"user.profile_image_url"];
date = [twit valueForKey:@"created_at"];

NSLog(@"User: %@ ",user);
NSLog(@"Comentario: %@",comment);
NSLog(@"Data: %@",date);
NSLog(@"ImgUserProfile: %@",img);
NSLog(@"\n\n");
}
} errorBlock:^(NSError *error) {
NSLog(@"Error1");
}
];

} errorBlock:^(NSError *error) {
NSLog(@"Error2");
}];
}
[/sourcecode]

Agora basta chamar no ViewDidLoad a função que foi criada:

[sourcecode language=”objc” wraplines=”false” collapse=”false”]
– (void)viewDidLoad
{
[super viewDidLoad];
twitter = [STTwitterAPI twitterAPIAppOnlyWithConsumerKey:@"ysMF21l8nwklyM6QCtvUDw"
consumerSecret:@"mpDQtaXdzlG8rouDy9GvobY0g926IkkKhM1aTSeNB8A"];

[self refreshTwitter];
}
[/sourcecode]

O resultado será exibido no Console, conforme mostrado na imagem:
Screen Shot 2014-03-17 at 15.15.46
No proximo tutorial, iremos ensinar a exibir os resultados obtidos do twitter em uma TableView.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *