Commit 42efe06b authored by DANIEL DIAZ SANCHEZ's avatar DANIEL DIAZ SANCHEZ
Browse files

Update README.md, img/twitter.png files

parent e41237ba
......@@ -4,7 +4,7 @@ Este proyecto NO se puede clonar.
### Aplicaciones y librerías a utilizar
* Eclipse (podéis usar el que descargásteis el primer día)
* Eclipse **Para esta práctica podemos usar el eclipse ya instalado en la máquina**
* [Unirest](http://unirest.io/java.html): librería de peticiones HTTP (más adelante veremos como descargarla)
* [Commons](https://commons.apache.org/): librerías de funciones auxiliares (más adelante veremos como descargarla)
* [Google-Gson](https://github.com/google/gson): librería de manipulación de JSON (más adelante veremos como descargarla)
......@@ -68,14 +68,17 @@ Bearer Token es una buena forma de recabar datos de twitter dado que sólo quere
### Crear proyecto y descargar dependencias
Crea un proyecto en Java. Transformalo en Maven (botón derecho sobre el proyecto > Configure > Convert to Maven Project).
Añade las dependencias:
**Para esta práctica no hace falta un Eclipse especial, podemos usar el eclipse ya instalado en la máquina**
Crea un proyecto en Java, por ejemplo `CdistREST`. Transformalo en `Maven` (botón derecho sobre el `proyecto > Configure > Convert to Maven Project`).
Añade las dependencias entre los tags `<project>` `</project>`:
```xml
</build>
<dependencies>
<!-- Pull in as a traditional dependency -->
<dependency>
<groupId>com.konghq</groupId>
<artifactId>unirest-java</artifactId>
<version>3.11.02</version>
<version>3.12.0</version>
</dependency>
<dependency>
......@@ -84,11 +87,12 @@ Añade las dependencias:
<version>2.8.6</version>
</dependency>
</dependencies>
</project>
```
### Obtención del Bearer Token
### Obtención del Bearer Token (no necesario)
Antes, era necesario obtener el bearer token, ahora te lo dan generado (solo tienes que copiarlo). Esta es la explicación (**no tenéis que hacerlo**) de cómo se obtendría el bearer token a partir de los secretos de la aplicación:
**Antes, era necesario obtener el bearer token, ahora te lo dan generado (solo tienes que copiarlo)**. Esta es la explicación (**no tenéis que hacerlo**) de cómo se obtendría el bearer token a partir de los secretos de la aplicación:
1. codificar en forma de URL ([URLEncode](https://en.wikipedia.org/wiki/Percent-encoding)) tanto el consumer key como el consumer secret.
2. unir ambos en una string separándolos por ":"
......@@ -183,6 +187,16 @@ Sustituyendo `oauth_consumer_key` y `oauth_consumer_secret` por los valores de t
Los tweets devueltos por Twitter (en general cualquier información que devuelva el API) vienen codificados con Json. En la práctica 1 de rest, usamos Gson para almacenar datos en json dentro de clases java.
Recuerda que, si usas Java 11, tu fichero `module-info.java` deberá contener (recuerda que el nombre del módulo es el del package, por lo que si lo has cambiado, éste fichero variará):
```java
module CDistTwitter {
requires com.google.gson;
requires unirest.java;
exports cdistRest;
}
```
En esta ocasión, creamos dos clases para guardar, por un lado el Tweet y por otro lado el usuario que lo creó, aunque el primero apunta al segundo. Las clases son las siguientes (usad el mismo paquete para todos, en este caso, por ejemplo **cdistRest**), `Tweet` para almacenar el tweet propiamente dicho, y `User` para guardar los datos del usuario que envía el tweet:
......@@ -407,6 +421,10 @@ Inspecciona la página del API. Revisa los parámetros de la llamada a esa funci
Además se pueden especificar el número de Tweets a obtener.
El bearer token se obtiene tras crear una aplicación y generar las claves:
<img src="img/twitter.png" sizes="(max-width: 500px)" style="display: block; margin-left: auto;"/>
Para obtener 2 tweets de la cuenta `@realmadrid` usa el siguiente código:
```java
......@@ -440,10 +458,16 @@ public class TwitterCrawler {
System.out.println("Request to: " + getReq.getUrl());
System.out.println("Authorization header Bearer " + bearer_token);
json_str_Response = getReq.asString();
System.out.println("Json : " + json_str_Response.getBody());
List<Tweet> tweet_list = Tweet.deserializeJsonArray(json_str_Response.getBody());
for(int i=0; i<tweet_list.size(); i++)
{
Tweet t = tweet_list.get(i);
System.out.println("Tweet(" + i+ ")" + ": " + t.text);
}
Unirest.shutDown();
......@@ -453,6 +477,7 @@ public class TwitterCrawler {
e.printStackTrace();
}
}
}
```
......@@ -577,6 +602,12 @@ public class TwitterCrawler {
TwitterCrawler tc = new TwitterCrawler(400, "realmadrid");
List<Tweet> my_tweets = tc.gettweets();
for(int i=0; i<my_tweets.size(); i++)
{
Tweet t = my_tweets.get(i);
System.out.println("Tweet(" + i+ ")" + ": " + t.text);
}
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment