Hola amigos:
Estoy intentado obtener el numero de likes de una pagina de facebook. Para ello uso Graph API de facebook. Es sencilla de usar, solo hay que mandar una petición mediante GET y esta nos devolverá el valor que queramos.
Realizo la petición, y esta me contesta que necesita usar HTTPS, ya que es mas seguro para enviar el token. Para ello modifico el ejemplo que viene con las librerías. El problema es que no hago coincidir el fingerprint. Tampoco obtengo ninguna respuesta.
Este es mi código:
Alguien me podría echar una mano. Un saludo.
Estoy intentado obtener el numero de likes de una pagina de facebook. Para ello uso Graph API de facebook. Es sencilla de usar, solo hay que mandar una petición mediante GET y esta nos devolverá el valor que queramos.
Realizo la petición, y esta me contesta que necesita usar HTTPS, ya que es mas seguro para enviar el token. Para ello modifico el ejemplo que viene con las librerías. El problema es que no hago coincidir el fingerprint. Tampoco obtengo ninguna respuesta.
Este es mi código:
Código [Seleccionar]
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
const char* ssid = "xxxxxx";
const char* password = "xxxxxx";
const char* host = "graph.facebook.com";
const char* url = "/v2.6/200630963285751?fields=fan_count&access_token=";
const char* token = "xxxxxxxxxxx";
const char* fingerprint = "A0 4E AF B3 48 C2 6B 15 A8 C1 AA 87 A3 33 CA A3 CD EE C9 C9";
void setup() {
Serial.begin(115200);
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
int value = 0;
void loop() {
delay(1000);
++value;
// Use WiFiClient class to create TCP connections
WiFiClientSecure client;
Serial.print("connecting to ");
Serial.println(host);
const int httpPort = 443;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
if (client.verify(fingerprint, host)) {
Serial.println("certificate matches");
} else {
Serial.println("certificate doesn't match");
}
// We now create a URI for the request
// This will send the request to the server
String paquete = String("GET ") + url + token + " HTTP/1.1\r\n" + "Host:" + host + "\r\n\r\n";
Serial.println(paquete);
client.print(paquete);
delay(1000);
// Read all the lines of the reply from server and print them to Serial
while (client.available()) {
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
Alguien me podría echar una mano. Un saludo.