arduino-facebook-api

Bonjour

J’essaye de récupéré les like sur une page facebook via cette librairie sur un Heltec wifi kit8

/*********************************************************************
 *  Get the fan count of an Facebook object. This could for instance *
 *  be a page.                                                       *
 *  https://developers.facebook.com/docs/graph-api/reference/page    *
 *                                                                   *
 *  By Brian Lough                                                   *
 *  https://www.youtube.com/channel/UCezJOfu7OtqGzd5xrP3q6WA         *
 *********************************************************************/

#include <FacebookApi.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>

#include <ArduinoJson.h> // This Sketch doesn't technically need this, but the library does so it must be installed.

// Include for SPIFFs
#include "FS.h"

//------- Replace the following! ------
char ssid[] = "xxx";       // your network SSID (name)
char password[] = "yyyy";  // your network key

// You will need to generate an access token
// It needs to be a key created from the account you want to check the friends count on.
// Make sure this request works using GraphApiExplorer Option here first:
// https://developers.facebook.com/docs/graph-api/reference/user/friends/

// These tokens expire so this one will be used once and use the
// extendAccessToken method to get a renwed one that lasts 60 days
String FACEBOOK_ACCESS_TOKEN = "";    // not needed for the page fan count
String FACEBOOK_APP_ID = "ENTER_YOUR_APP_ID";
String FACEBOOK_APP_SECRET = "ENTER_YOUR_APP_SECRET";

WiFiClientSecure client;
FacebookApi *api;

unsigned long api_delay = 5 * 60000; //time between api requests (5mins)
unsigned long api_due_time;

void setup() {
  Serial.begin(115200);

  // Set WiFi to station mode and disconnect from an AP if it was Previously
  // connected
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  // Attempt to connect to Wifi network:
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  IPAddress ip = WiFi.localIP();
  Serial.println(ip);

  if (!SPIFFS.begin()) {
    Serial.println("Failed to mount file system");
    return;
  }

  // loading the saved config if there is a new key saved there
  loadConfig();
  api = new FacebookApi(client, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET, FACEBOOK_ACCESS_TOKEN);
}

bool loadConfig() {
  File configFile = SPIFFS.open("/counterConfig.json", "r");
  if (!configFile) {
    Serial.println("Failed to open config file");
    return false;
  }

  size_t size = configFile.size();
  if (size > 1024) {
    Serial.println("Config file size is too large");
    return false;
  }

  // Allocate a buffer to store contents of the file.
  std::unique_ptr<char[]> buf(new char[size]);

  configFile.readBytes(buf.get(), size);

  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& json = jsonBuffer.parseObject(buf.get());

  if (!json.success()) {
    Serial.println("Failed to parse config file");
    return false;
  }

  FACEBOOK_ACCESS_TOKEN = json["facebookToken"].as<String>();
  FACEBOOK_APP_ID = json["facebookAppId"].as<String>();
  FACEBOOK_APP_SECRET = json["facebookAppSecret"].as<String>();
  return true;
}

bool saveConfig() {
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& json = jsonBuffer.createObject();
  json["facebookToken"] = FACEBOOK_ACCESS_TOKEN;
  json["facebookAppId"] = FACEBOOK_APP_ID;
  json["facebookAppSecret"] = FACEBOOK_APP_SECRET;

  File configFile = SPIFFS.open("/counterConfig.json", "w");
  if (!configFile) {
    Serial.println("Failed to open config file for writing");
    return false;
  }

  json.printTo(configFile);
  return true;
}

void loop() {
  if (millis() > api_due_time) {
    int pageLikes = api->getPageFanCount("59520506051");
    if(pageLikes >= 0) {
      Serial.print("Facebook page likes: ");
      Serial.println(pageLikes);
    } else {
      Serial.println("Error getting likes");
    }
    api_due_time = millis() + api_delay;
  }
}

il se connecte bien mais

WiFi connected
IP address: 
192.168.1.74
Failed to mount file system

il n’arrive pas à monter (créé?) le fichier qui va garder la configuration ou reboot

WiFi connected
IP address: 
192.168.1.74
Failed to mount file system

Exception (28):
epc1=0x40210b8c epc2=0x00000000 epc3=0x00000000 excvaddr=0x0000000c depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffffd40 end: 3fffffc0 offset: 01a0
3ffffee0:  00000004 3fffff88 00000000 40202d71  
3ffffef0:  3fff15f4 011f011f 00000a0d 4020935d  
3fffff00:  0000000b 00000000 4145006d 4020935d  
3fffff10:  3ffe8885 1a94797f 00000000 3ffeea98  
3fffff20:  3ffe8707 000000b2 3fffff70 402070b3  
3fffff30:  000000b2 00000000 4bc6a7f0 00000000  
3fffff40:  3ffe8a83 000000b2 3fffff70 402070fc  
3fffff50:  3ffee8e8 3fffff70 3ffe8707 3ffeea98  
3fffff60:  3ffee8e8 00000000 3ffee8ec 40201cc8  
3fffff70:  3fff152c 00b200bf 00efeffe 3fff1034  
3fffff80:  0010001f 00efeffe feefeffe feefeffe  
3fffff90:  feefeffe feefeffe feefeffe 3ffeea98  
3fffffa0:  3fffdad0 00000000 3ffeea58 40207898  
3fffffb0:  feefeffe feefeffe 3ffe8554 40100bdd  
<<<stack<<<
⸮!⸮L⸮<1⸮1⸮⸮

je ne sais pas si ce code est compatible avec la carte esp ? et où est l’erreur

Merci

suivez ce tuto pour voir si le SPIFFS fonctionne sur ce module

J'ai suivi le tuto
par contre le dossier decompresser : "/ESP8266FS/tool/esp8266fs.jar"

on doit bien l'installer dans :

/Users/xxxxxxx/Documents/Arduino/tools

ce qui donne :

/Users/xxxxxxx/Documents/Arduino/tools/ESP8266FS/tool/esp8266fs.jar

?

car quand j'execute le sketch upload il me répond :

SPIFFS ERROR: ESPTOOL NOT FOUND!

je televerse avec la carte NodeMCU 1.0 (ESP-12 E MODULE) . pour info

le fichier .jar est dans le bon dossier

mais j'ai toujours l'erreur : SPIFFS ERROR: ESPTOOL NOT FOUND!

du coup cette version semble "compatible"

https://arduino-esp8266.readthedocs.io/en/2.6.3/filesystem.html

le lien que tu viens de donner pointe sur la documentation actualisée du 'core' ESP8266 pour l'IDE Arduino (2.6.3)
......plus que 'compatible', c'est LA référence !

al1fch:
le lien que tu viens de donner pointe sur la documentation actualisée du 'core' ESP8266 pour l'IDE Arduino (2.6.3)
......plus que 'compatible', c'est LA référence !

je découvre ^^, et je note