Go Down

Topic: compteur de likes Fb (Read 723 times) previous topic - next topic

chacall

#30
Apr 22, 2019, 03:34 pm Last Edit: Apr 22, 2019, 05:25 pm by chacall
non c'est changé pour une matrice ht1632
voila le code apres correction


Code: [Select]
#include <wifi_connect.h>
#include <ArduinoJson.h>
#include <BearSSLHelpers.h>
#include <CertStoreBearSSL.h>
#include <ESP8266WiFi.h>
#include <ESP8266WiFiAP.h>
#include <ESP8266WiFiGeneric.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266WiFiScan.h>
#include <ESP8266WiFiSTA.h>
#include <ESP8266WiFiType.h>
#include <WiFiClient.h>
#include <WiFiClientSecure.h>
#include <WiFiClientSecureAxTLS.h>
#include <WiFiClientSecureBearSSL.h>
#include <WiFiServer.h>
#include <WiFiServerSecure.h>
#include <WiFiServerSecureAxTLS.h>
#include <WiFiServerSecureBearSSL.h>
#include <WiFiUdp.h>
#include <font_5x4.h>
#include <font_8x4.h>
#include <font_8x5.h>
#include <HT1632.h>
#include <images.h>
#include <WiFiClient.h>
#include <string.h>


/****************************************** SETUP ****************************************/
char ssid[] = "xxxxxx";       // your network SSID (name)
char password[] = "xxxxxxx";  // your network key (password)

String FACEBOOK_ACCESS_TOKEN = "xxxxxxx";
String FACEBOOK_PAGE_ID = "xxxxxxx";

char *HOST_FACEBOOK = "graph.facebook.com";

const char *likes;

void facebook_get_likes();

void print_facebook(int pos);


typedef struct display_funct {
  void (*get)(void);
  void (*display)(int);
} display_funct;

display_funct function[1] = {{facebook_get_likes, print_facebook}};

WiFiClientSecure client;
DynamicJsonBuffer jsonBuffer(512);

void setup() {
  Serial.begin(115200);
  HT1632.begin(D2, D3, D4);
  HT1632.clear();
  HT1632.drawText(".", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  HT1632.render();
  while (wifi_connect () != true);
  facebook_get_likes();
}

/************************************ LOOP FUNCTION *************************************/
void loop() {
  int pos = 0;
  if (WiFi.status() == WL_CONNECTED) {
    for (int i = 0; i < 3; i++) {
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      function[i].get();
      delay(2000);
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      delay(2000);
      while (pos < 9) {
        yield();
        HT1632.clear();
        if (i + 1 == 3)
          function[0].display(pos - 9);
        else
          function[i + 1].display(pos - 9);
        function[i].display(pos);
        HT1632.render();
        delay(100);
        pos++;
      }
      pos = 0;
    }
  } else {
    HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    delay(2000);
    wifi_connect();
  }
}

/*********************************** DISPLAY FUNCTION ***********************************/

void print_facebook(int pos) {
  HT1632.drawImage(IMG_FB2, IMG_FB_WIDTH,  IMG_FB_HEIGHT, 0, 0);
  HT1632.drawText(likes, 13, pos, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  Serial.println(likes);
}
/******************************************************************************************/


/*********************************** FACEBOOK FUNCTION ***********************************/
void facebook_get_likes() {
  String line;
  char buff[400];
  int i = 1, y = 0;
  if (client.connect(HOST_FACEBOOK, 443)) {
    Serial.println("Connected to graph.facebook.com");
    client.print("GET /v3.2/");
    client.print(FACEBOOK_PAGE_ID);
    client.print("?fields=access_token%2Cfan_count&access_token=");
    client.print(FACEBOOK_ACCESS_TOKEN);
    client.println(" HTTP/1.1");
    client.println("Host: graph.facebook.com");
    client.println("User-Agent: arduino/1.0.0");
    client.println();
    while(client.connected() && !client.available());
      while (client.available()) {
        line = client.readStringUntil('\r');
        if (line[1] == '{')
          while (line[i - 1] != '}') {
            buff[y] = line[i];
            y++;
            i++;
          }
      }
    buff[y] = '\0';
    client.stop();
    Serial.println(buff);
    JsonObject& root = jsonBuffer.parseObject(buff);
    if (!root.success())
      Serial.println("!!!!Json failed!!!!");
    else
      likes = strdup(root["fan_count"]);
    Serial.println(likes);
  } else {
    Serial.println("Connection to graph.facebook.com failed...");
  }
}
uint8_t copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));
      int copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));
}
  
/****************************************************************************************/

/************************************* WIFI FUNCTION ************************************/
bool wifi_connect() {
  int retry = 0;
  int pos = 0;
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    if (retry == 20) {
      HT1632.clear();
      HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
      HT1632.render();
      delay(2000);
      return (false);
    }
    if (pos == 32)
      pos = 0;
    HT1632.drawText(".", pos, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    HT1632.render();
    Serial.print(".");
    delay(500);
    retry++;
    pos++;
  }
  Serial.println("WiFi connected");
  IPAddress ip = WiFi.localIP();
  Serial.println("IP address: ");
  Serial.println(ip);
  return (true);
}

chacall

et le rapport d'erreur afferent

Code: [Select]
Arduino : 1.8.9 (Windows 10), Carte : "WeMos D1 R1, 80 MHz, Flash, Disabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600"

E:\mes documents\Arduino\compteur_avril\compteur_avril.ino: In function 'void setup()':

compteur_avril:81:24: error: 'wifi_connect' was not declared in this scope

   while (wifi_connect () != true);

                        ^

E:\mes documents\Arduino\compteur_avril\compteur_avril.ino: In function 'void loop()':

compteur_avril:116:18: error: 'wifi_connect' was not declared in this scope

     wifi_connect();

                  ^

E:\mes documents\Arduino\compteur_avril\compteur_avril.ino: At global scope:

compteur_avril:168:35: error: 'src_y' was not declared in this scope

 uint8_t copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));

                                   ^

compteur_avril:168:52: error: 'dst_y' was not declared in this scope

 uint8_t copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));

                                                    ^

compteur_avril:169:11: error: conflicting declaration 'int copyInNextStep'

       int copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));

           ^

compteur_avril:168:9: error: 'copyInNextStep' has a previous declaration as 'unsigned char copyInNextStep'

 uint8_t copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));

         ^

compteur_avril:169:37: error: 'src_y' was not declared in this scope

       int copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));

                                     ^

compteur_avril:169:54: error: 'dst_y' was not declared in this scope

       int copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));

                                                      ^

compteur_avril:170:1: error: expected declaration before '}' token

 }

 ^

Plusieurs bibliothèque trouvées pour "font_5x4.h"
Utilisé : E:\mes documents\Arduino\libraries\font_5x4
Non utilisé : E:\mes documents\Arduino\libraries\HT1632-for-Arduino-master
Plusieurs bibliothèque trouvées pour "font_8x4.h"
Utilisé : E:\mes documents\Arduino\libraries\font_8x4
Non utilisé : E:\mes documents\Arduino\libraries\HT1632-for-Arduino-master
Plusieurs bibliothèque trouvées pour "font_8x5.h"
Utilisé : E:\mes documents\Arduino\libraries\font_8x5
Non utilisé : E:\mes documents\Arduino\libraries\HT1632-for-Arduino-master
Plusieurs bibliothèque trouvées pour "HT1632.h"
Utilisé : E:\mes documents\Arduino\libraries\HT1632
Non utilisé : E:\mes documents\Arduino\libraries\HT1632-for-Arduino-master
Plusieurs bibliothèque trouvées pour "images.h"
Utilisé : E:\mes documents\Arduino\libraries\images
Non utilisé : E:\mes documents\Arduino\libraries\HT1632-for-Arduino-master
exit status 1
'wifi_connect' was not declared in this scope

hbachetti

J'ai l'impression que tu avances au hasard avec les yeux bandés.

La ligne suivante n'est pas à ajouter dans ton sketch. C'est une correction à apporter à la librairie HT1632 dans le fichier HT1632.cpp :

Code: [Select]

// tu cherches cette ligne
// uint8_t copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));
// tu remplaces uint8_t par int
  int copyInNextStep = 8 - max((src_y & 0b111), (dst_y & 0b111));


Pourquoi avoir ajouté tous ces fichiers .H ?

Comme ceci :

Code: [Select]

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <string.h>
#include <ArduinoJson.h>
#include <HT1632.h>
#include <font_5x4.h>
#include <font_8x5.h>
#include <images.h>

/****************************************** SETUP ****************************************/
char ssid[] = "xxxxxx";       // your network SSID (name)
char password[] = "xxxxxxx";  // your network key (password)

String FACEBOOK_ACCESS_TOKEN = "xxxxxxx";
String FACEBOOK_PAGE_ID = "xxxxxxx";

char *HOST_FACEBOOK = "graph.facebook.com";

const char *likes;

void facebook_get_likes();

void print_facebook(int pos);


typedef struct display_funct {
  void (*get)(void);
  void (*display)(int);
} display_funct;

display_funct function[1] = {{facebook_get_likes, print_facebook}};

WiFiClientSecure client;
DynamicJsonBuffer jsonBuffer(512);

bool wifi_connect() {
  int retry = 0;
  int pos = 0;
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    if (retry == 20) {
      HT1632.clear();
      HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
      HT1632.render();
      delay(2000);
      return (false);
    }
    if (pos == 32)
      pos = 0;
    HT1632.drawText(".", pos, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    HT1632.render();
    Serial.print(".");
    delay(500);
    retry++;
    pos++;
  }
  Serial.println("WiFi connected");
  IPAddress ip = WiFi.localIP();
  Serial.println("IP address: ");
  Serial.println(ip);
  return (true);
}

void setup() {
  Serial.begin(115200);
  HT1632.begin(D2, D3, D4);
  HT1632.clear();
  HT1632.drawText(".", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  HT1632.render();
  while (wifi_connect () != true);
  facebook_get_likes();
}

/************************************ LOOP FUNCTION *************************************/
void loop() {
  int pos = 0;
  if (WiFi.status() == WL_CONNECTED) {
    for (int i = 0; i < 3; i++) {
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      function[i].get();
      delay(2000);
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      delay(2000);
      while (pos < 9) {
        yield();
        HT1632.clear();
        if (i + 1 == 3)
          function[0].display(pos - 9);
        else
          function[i + 1].display(pos - 9);
        function[i].display(pos);
        HT1632.render();
        delay(100);
        pos++;
      }
      pos = 0;
    }
  } else {
    HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    delay(2000);
    wifi_connect();
  }
}

/*********************************** DISPLAY FUNCTION ***********************************/

void print_facebook(int pos) {
  HT1632.drawImage(IMG_FB2, IMG_FB_WIDTH,  IMG_FB_HEIGHT, 0, 0);
  HT1632.drawText(likes, 13, pos, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  Serial.println(likes);
}
/******************************************************************************************/


/*********************************** FACEBOOK FUNCTION ***********************************/
void facebook_get_likes() {
  String line;
  char buff[400];
  int i = 1, y = 0;
  if (client.connect(HOST_FACEBOOK, 443)) {
    Serial.println("Connected to graph.facebook.com");
    client.print("GET /v3.2/");
    client.print(FACEBOOK_PAGE_ID);
    client.print("?fields=access_token%2Cfan_count&access_token=");
    client.print(FACEBOOK_ACCESS_TOKEN);
    client.println(" HTTP/1.1");
    client.println("Host: graph.facebook.com");
    client.println("User-Agent: arduino/1.0.0");
    client.println();
    while(client.connected() && !client.available());
      while (client.available()) {
        line = client.readStringUntil('\r');
        if (line[1] == '{')
          while (line[i - 1] != '}') {
            buff[y] = line[i];
            y++;
            i++;
          }
      }
    buff[y] = '\0';
    client.stop();
    Serial.println(buff);
    JsonObject& root = jsonBuffer.parseObject(buff);
    if (!root.success())
      Serial.println("!!!!Json failed!!!!");
    else
      likes = strdup(root["fan_count"]);
    Serial.println(likes);
  } else {
    Serial.println("Connection to graph.facebook.com failed...");
  }
}


Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chacall

alors ouais la c'est quand meme bien explique
 en effet je navigue a l'aveugle .
 je n'y connait rien en prog et je me contente de copier des projets existants afin de faire decouvrir un peu ce monde a mon fils ( et a moi aussi)

mais la sur ce coup la c'est vrai que ca compile....
merci

chacall

ca marche pas vraiment... mais la c'est a moi de trouver la solution au probleme de la connectivite avec Fb
je repose ici le code définitif

Code: [Select]
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <string.h>
#include <ArduinoJson.h>
#include <HT1632.h>
#include <font_5x4.h>
#include <font_8x5.h>
#include <images.h>

/****************************************** SETUP ****************************************/
char ssid[] = "xxxxx";       // your network SSID (name)
char password[] = "xxxxxxx";  // your network key (password)

String FACEBOOK_ACCESS_TOKEN = "xxxxxxxx";
String FACEBOOK_PAGE_ID = "xxxxxxxx";

char *HOST_FACEBOOK = "graph.facebook.com";

const char *likes;

void facebook_get_likes();

void print_facebook(int pos);


typedef struct display_funct {
  void (*get)(void);
  void (*display)(int);
} display_funct;

display_funct function[1] = {{facebook_get_likes, print_facebook}};

WiFiClientSecure client;
DynamicJsonBuffer jsonBuffer(512);

void setup() {
  Serial.begin(115200);
  HT1632.begin(D2, D3, D4);
  HT1632.clear();
  HT1632.drawText(".", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  HT1632.render();
  while (wifi_connect () != true);
  facebook_get_likes();
}

/************************************ LOOP FUNCTION *************************************/
void loop() {
  int pos = 0;
  if (WiFi.status() == WL_CONNECTED) {
    for (int i = 0; i < 3; i++) {
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      function[i].get();
      delay(2000);
      HT1632.clear();
      function[i].display(pos);
      HT1632.render();
      delay(2000);
      while (pos < 9) {
        yield();
        HT1632.clear();
        if (i + 1 == 3)
          function[0].display(pos - 9);
        else
          function[i + 1].display(pos - 9);
        function[i].display(pos);
        HT1632.render();
        delay(100);
        pos++;
      }
      pos = 0;
    }
  } else {
    HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    delay(2000);
    wifi_connect();
  }
}

/*********************************** DISPLAY FUNCTION ***********************************/

void print_facebook(int pos) {
  HT1632.drawImage(IMG_FB2, IMG_FB_WIDTH,  IMG_FB_HEIGHT, 0, 0);
  HT1632.drawText(likes, 13, pos, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
  Serial.println(likes);
}
/******************************************************************************************/


/*********************************** FACEBOOK FUNCTION ***********************************/
void facebook_get_likes() {
  String line;
  char buff[400];
  int i = 1, y = 0;
  if (client.connect(HOST_FACEBOOK, 443)) {
    Serial.println("Connected to graph.facebook.com");
    client.print("GET /v3.2/");
    client.print(FACEBOOK_PAGE_ID);
    client.print("?fields=access_token%2Cfan_count&access_token=");
    client.print(FACEBOOK_ACCESS_TOKEN);
    client.println(" HTTP/1.1");
    client.println("Host: graph.facebook.com");
    client.println("User-Agent: arduino/1.0.0");
    client.println();
    while(client.connected() && !client.available());
      while (client.available()) {
        line = client.readStringUntil('\r');
        if (line[1] == '{')
          while (line[i - 1] != '}') {
            buff[y] = line[i];
            y++;
            i++;
          }
      }
    buff[y] = '\0';
    client.stop();
    Serial.println(buff);
    JsonObject& root = jsonBuffer.parseObject(buff);
    if (!root.success())
      Serial.println("!!!!Json failed!!!!");
    else
      likes = strdup(root["fan_count"]);
    Serial.println(likes);
  } else {
    Serial.println("Connection to graph.facebook.com failed...");
  }
}
 
/****************************************************************************************/

/************************************* WIFI FUNCTION ************************************/
bool wifi_connect() {
  int retry = 0;
  int pos = 0;
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);
  Serial.print("Connecting Wifi: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    if (retry == 20) {
      HT1632.clear();
      HT1632.drawText("no wifi", 0, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
      HT1632.render();
      delay(2000);
      return (false);
    }
    if (pos == 32)
      pos = 0;
    HT1632.drawText(".", pos, 0, FONT_8X5, FONT_8X5_END, FONT_8X5_HEIGHT, 1);
    HT1632.render();
    Serial.print(".");
    delay(500);
    retry++;
    pos++;
  }
  Serial.println("WiFi connected");
  IPAddress ip = WiFi.localIP();
  Serial.println("IP address: ");
  Serial.println(ip);
  return (true);
}

J-M-L

toujours le problème de débordement de tableau que j'ai mentionné en #21 (et de la syntaxe de définition et appel par pointeur sur fonctions)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

chacall


dbrion06

Excusez moi, mais ce n'est pas une réponse:
quand on signale un débordement de tableau, qui risque d'écrire des valeurs aléatoires et de pourrir des structures de données, la moindre des choses serait de tenter de -faire (si on n'a pas l'habitude) - régler ce problème (qui est l'un des plus ennuyeux qui soit).

chacall

je repond donc correctement
 Je n'ai pas ecrit ce scipt....
je m'en sert pour decouvrir votre univers et bricoler des petits trucs .
 maintenant l'ecriture du script est signée benjamin amory
pour ce qui est des debordements de tableau et tout le reste c'est du chinois pour moi.
je dirais que si le tableau rentre pas dans le cadre , faut recouper la toile ou agrandir le cadre

J-M-L

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous


hbachetti


Dans le code d'origine l'auteur récupère les données de 3 sites : FaceBook, Tweeter, Instagram.
Dans le tableau tu n'as conservé que FaceBook.
Par contre au début de la loop, Les 3 sites sont toujours traités :

Code: [Select]
    for (int i = 0; i < 3; i++) {

Donc le premier appel de function.display(pos) plante si i est différent de zéro.

Pour parer au plus pressé (vu que tu ne sais pas ce qu'est un tableau) :

Code: [Select]
    for (int i = 0; i < 1; i++) {

Dans le futur, il vaudrait mieux tout de même attaquer par la base et apprendre le langage C.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chacall

je suis d'accord avec toi
d'ailleurs si tout avait ete plus clair des le depart je n'aurais pas eu besoin d'aide.
maintenant je pensait que cet univers etait plus accesible au debutants

j'ai resolu le probleme majeur: recuperer les donnees de Fb .
apparemment la majorite de ceux qui se lancent dans ce genre de projet recuperent les donnes de Fb via un script en php et apres ils inserent dans leur sketch non pas les coordonees du graph Fb mais l'url ou se situe ce script....

comme decrit ici

c'est dommage car je suis sur que recuperer direct les donnees chez Fb ca doit aussi se mettre ajour...
enfin
merci de l'aide que vous m'avez tous apporté

hbachetti

Donc ? ça marche ou pas ?

Le projet de achappard n'est pas basé sur du PHP.
Il tourne sur ESP8266.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chacall

#44
Apr 24, 2019, 08:32 pm Last Edit: Apr 24, 2019, 08:35 pm by chacall
oui ca marche .....
Code: [Select]
#include "Arduino.h"
#include <ESP8266WiFi.h>
 
WiFiClient client;
 
#define NUM_MAX 4
#define ROTATE 90
 
// for ESP-01 module
//#define DIN_PIN 2 // D4
//#define CS_PIN  3 // D9/RX
//#define CLK_PIN 0 // D3
 
// for NodeMCU 1.0
#define DIN_PIN 15  // D8
#define CS_PIN  13  // D7
#define CLK_PIN 12  // D6
 
#include "max7219.h"
#include "fonts.h"
 
// =======================================================================
// Your config below!
// =======================================================================
const char* ssid     = "xxxxx";      // SSID of local network
const char* password = "xxxxxx";    // Password on network
// =======================================================================

String likes = "";

void setup()
{
  Serial.begin(115200);
  initMAX7219();
  sendCmdAll(CMD_SHUTDOWN,1);
  sendCmdAll(CMD_INTENSITY,0);
  Serial.print("Connecting WiFi ");
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  printStringWithShift(" WiFi ...",20);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("."); delay(500);
  }
  Serial.println("");
  Serial.print("Connected: "); Serial.println(WiFi.localIP());
}
// =======================================================================
 
void loop()
{
  Serial.println("Getting data ...");
  printStringWithShift("  ... FB ...",20);
  int subs, views, cnt = 0;
  String fb1,fb2;
  while(1) {
    if(cnt == 0) {
      cnt = 1;  // data is refreshed every 50 loops
      if(fricadelle()==0) {
        fb1 = "     Bienvenue a la Brasserie... Suivez nous sur Facebook           ";
        fb2 = "  #  "+ likes;
      } else {
        fb1 = "   Facebook";
        fb2 = "   Error!";
      }
      fricadelle();
    }
  printStringWithShift(fb1.c_str(),20);
    delay(3000);
    printStringWithShift(fb2.c_str(),20);
    delay(3000);
    cnt--;
  }
}
// =======================================================================
 
int showChar(char ch, const uint8_t *data)
{
  int len = pgm_read_byte(data);
  int i,w = pgm_read_byte(data + 1 + ch * len);
  for (i = 0; i < w; i++)
    scr[NUM_MAX*8 + i] = pgm_read_byte(data + 1 + ch * len + 1 + i);
  scr[NUM_MAX*8 + i] = 0;
  return w;
}
 
// =======================================================================
int dualChar = 0;
 
unsigned char convertPolish(unsigned char _c)
{
  unsigned char c = _c;
  if(c==196 || c==197 || c==195) {
    dualChar = c;
    return 0;
  }
  if(dualChar) {
    switch(_c) {
      case 133: c = 1+'~'; break; // 'ą'
      case 135: c = 2+'~'; break; // 'ć'
      case 153: c = 3+'~'; break; // 'ę'
      case 130: c = 4+'~'; break; // 'ł'
      case 132: c = dualChar==197 ? 5+'~' : 10+'~'; break; // 'ń' and 'Ą'
      case 179: c = 6+'~'; break; // 'ó'
      case 155: c = 7+'~'; break; // 'ś'
      case 186: c = 8+'~'; break; // 'ź'
      case 188: c = 9+'~'; break; // 'ż'
      //case 132: c = 10+'~'; break; // 'Ą'
      case 134: c = 11+'~'; break; // 'Ć'
      case 152: c = 12+'~'; break; // 'Ę'
      case 129: c = 13+'~'; break; // 'Ł'
      case 131: c = 14+'~'; break; // 'Ń'
      case 147: c = 15+'~'; break; // 'Ó'
      case 154: c = 16+'~'; break; // 'Ś'
      case 185: c = 17+'~'; break; // 'Ź'
      case 187: c = 18+'~'; break; // 'Ż'
      default:  break;
    }
    dualChar = 0;
    return c;
  }    
  switch(_c) {
    case 185: c = 1+'~'; break;
    case 230: c = 2+'~'; break;
    case 234: c = 3+'~'; break;
    case 179: c = 4+'~'; break;
    case 241: c = 5+'~'; break;
    case 243: c = 6+'~'; break;
    case 156: c = 7+'~'; break;
    case 159: c = 8+'~'; break;
    case 191: c = 9+'~'; break;
    case 165: c = 10+'~'; break;
    case 198: c = 11+'~'; break;
    case 202: c = 12+'~'; break;
    case 163: c = 13+'~'; break;
    case 209: c = 14+'~'; break;
    case 211: c = 15+'~'; break;
    case 140: c = 16+'~'; break;
    case 143: c = 17+'~'; break;
    case 175: c = 18+'~'; break;
    default:  break;
  }
  return c;
}
 
// =======================================================================
 
void printCharWithShift(unsigned char c, int shiftDelay) {
  c = convertPolish(c);
  if (c < ' ' || c > MAX_CHAR) return;
  c -= 32;
  int w = showChar(c, font);
  for (int i=0; i<w+1; i++) {
    delay(shiftDelay);
    scrollLeft();
    refreshAll();
  }
}
 
// =======================================================================
 
void printStringWithShift(const char* s, int shiftDelay){
  while (*s) {
    printCharWithShift(*s++, shiftDelay);
  }
}
 
// =======================================================================
unsigned int convToInt(const char *txt)
{
  unsigned int val = 0;
  for(int i=0; i<strlen(txt); i++)
    if(isdigit(txt[i])) val=val*10+(txt[i]&0xf);
  return val;
}
// =======================================================================
 
const char* HOST = "https://xxxxx.xx";
const char* URL = "url du script php";
 
int fricadelle() {
    WiFiClient client;
    if (!client.connect("xxxxxx", 80)) {
        printStringWithShift("connection failed", 15);
        return -1;
  }
  client.print("GET /counter/fb.php?page=nomdelapageFb HTTP/1.1\r\nHost: xxxxx.xx\r\nConnection: close\r\n\r\n");
  int repeatCounter = 10;
  while (!client.available() && repeatCounter--) {
    Serial.println("y."); delay(500);
  }
  while (/*client.connected() && */client.available()) {
    String line = client.readStringUntil('\n');
  if (line.indexOf("likes") > 0) {
  line.replace("likes", "");
    //printStringWithShift(line.c_str(), 15);
  likes = line;
  }
    
  }
  client.stop();
  return 0;
}



et le script php

Code: [Select]
<?php
 
 $page_name 
$_GET['page'];
 
 
$header = array();
 
$header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5';
 
$header[] = 'Cache-Control: max-age=0';
 
$header[] = 'Connection: keep-alive';
 
$header[] = 'Keep-Alive: 300';
 
$header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7';
 
$header[] = 'Accept-Language: en-us,en;q=0.5';
 
$header[] = 'Pragma: ';
 
 
$ch curl_init(); 
 
curl_setopt($chCURLOPT_URL'https://fr-fr.facebook.com/'.$page_name);
 
curl_setopt($chCURLOPT_USERAGENT'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)');
 
curl_setopt($chCURLOPT_HTTPHEADER$header);
 
curl_setopt($chCURLOPT_AUTOREFERERtrue); 
 
curl_setopt($chCURLOPT_RETURNTRANSFER1);
 
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
 
curl_setopt($chCURLOPT_ENCODING'');
 
curl_setopt($chCURLOPT_TIMEOUT20);
 
$contents curl_exec($ch);
 
curl_close ($ch);

 
preg_match('/>([0-9]{0,3}.?.?[0-9]{0,3}.?.?[0-9]{3}) personnes aiment/i'$contents$matches);

 echo 
$matches[1];

 
// url like : https://xxx.xx/counter/fb.php?page=Nomdelapage Fb


pour ce qui est de achappard si si je t'assure qu'il a foutu un script en php sur un serveur... c'est ecrit ici

Go Up