[GH-ISSUE #1416] error: 'class WiFiManager' has no member named 'setMenu' #1212

Closed
opened 2026-02-28 01:29:03 +03:00 by kerem · 4 comments
Owner

Originally created by @MaralS on GitHub (May 13, 2022).
Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1416

Basic Infos

Hardware

WiFimanager Branch/Release: Master

Esp8266/Esp32:

Hardware: ESP-12e,

Core Version: i don't know

Description

Problem description

Settings in IDE

Module: NodeMcu
Additional libraries:

Sketch

#include <Arduino.h>
#include <stdio.h>
#include <string.h>
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiManager.h>
#include <LittleFS.h>

char access_token[250];
char fb_id[50];
char ig_id[50];
char url_request[350];



const int WIFI_LED = 5;
const int REQUEST_LED = 4;

const char *host = "graph.facebook.com";
const int httpsPort = 443;




void getSocialCount(String account)
{


    String url;
    WiFiClientSecure httpsClient; // Declare object of class WiFiClient
    Serial.println("======================================");

    if (account == "instagram")
    {

      strcpy(url_request, "/");
      strcat(url_request, ig_id);
      strcat(url_request, "?access_token=");
      strcat(url_request, access_token);
      strcat(url_request, "&fields=followers_count");
      url = url_request;

      Serial.println("===========GET IG FOLLOWERS===========");
    }
    if (account == "facebook")
    {
      strcpy(url_request, "/");
      strcat(url_request, fb_id);
      strcat(url_request, "?access_token=");
      strcat(url_request, access_token);
      strcat(url_request, "&fields=fan_count");
      url = url_request;
      Serial.println("===========GET FB FAN COUNT===========");
    }
    Serial.println("======================================");
    Serial.println("URL Request : " + url);
    Serial.println(host);
    httpsClient.setInsecure();    // permet de se passer du fingerprint du certificat SSL
    httpsClient.setTimeout(3000); // 3 s sec avant d'afficher la requete
    delay(1000);
    Serial.print("HTTPS Connecting : ");
    Serial.println(host);
    int r = 0; // retry counter
    while ((!httpsClient.connect(host, httpsPort)) && (r < 30))
    {
      delay(100);
      Serial.print(".");
      r++;
    }
    if (r == 30)
    {
      Serial.println("Connection failed");
    }
    else
    {
      Serial.println("Connected to web");
      digitalWrite(REQUEST_LED, HIGH);
    }
    httpsClient.print(String("GET ") + url + " HTTP/1.0\r\n" +
                      "Host: " + host + "\r\n" +
                      "Connection: close\r\n\r\n");
    Serial.println("Request sent");
    while (httpsClient.connected())
    {
      String line = httpsClient.readStringUntil('\n');
      if (line == "\r")
      {
        Serial.println("Headers received");
        break;
      }
    }
    Serial.print("Request result :");
    String line;
    while (httpsClient.available())
    {
      line = httpsClient.readStringUntil('\n'); // Read Line by Line
      Serial.println(line);                     // Print response
    }
    Serial.println("Deserialization process");
    DynamicJsonDocument doc(96); // For ESP32/ESP8266 you'll mainly use dynamic.
    Serial.setTimeout(18000);
    DeserializationError error = deserializeJson(doc, line);
    if (!error)
    {
      if (account != "instagram")
      {
        int fan_count = doc["fan_count"]; // FB
        Serial.print("Facebook Fans : ");
        Serial.println(fan_count);
      }
      else
      {
        int followers_count = doc["followers_count"]; // IG
        Serial.print("Instagram followers : ");
        Serial.println(followers_count);
      }
    }
    else
    {
      Serial.print(F("deserializeJson() failed: "));
      Serial.println(error.f_str());
      return;
    }

    digitalWrite(REQUEST_LED, LOW);
    Serial.println("Closing connection");

}

void setup()
{
  // Serial.begin(74880); // BAUDS FOR WEMOS DI MINI
  Serial.begin(115200); // BAUDS FOR NODEMCU
  Serial.println("");
  delay(500);

  pinMode(WIFI_LED, OUTPUT);
  pinMode(REQUEST_LED, OUTPUT);

  digitalWrite(WIFI_LED, LOW);
  digitalWrite(REQUEST_LED, LOW);

  WiFiManager wifiManager;

  // id/name, placeholder/prompt, default, length
  WiFiManagerParameter custom_access_token("accessToken", "Access Token", access_token, 250);
  WiFiManagerParameter custom_fb_id("fbId", "Fb Id", fb_id, 50);
  WiFiManagerParameter custom_ig_id("igId", "IG Id", ig_id, 50);

  wifiManager.addParameter(&custom_access_token);
  wifiManager.addParameter(&custom_fb_id);
  wifiManager.addParameter(&custom_ig_id);

  WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP
  WiFi.hostname("Social Counter Device");

  Serial.println("======================================");
  Serial.println("============WIFI CONNECTION===========");
  Serial.println("======================================");
  Serial.println("Connection...");

  wifiManager.resetSettings();
  wifiManager.setDebugOutput(false); // evite le long log qui affiche toutes les informations pour se connect
  std::vector<const char *> menu = {"wifi"};
  wifiManager.setMenu(menu);
  bool success = wifiManager.autoConnect("SOCIALCOUNTER-AP");

  if (!success)
  {
    Serial.println("Error: failed to connect");
  }

  // read updated parameters
  strcpy(access_token, custom_access_token.getValue());
  strcpy(fb_id, custom_fb_id.getValue());
  strcpy(ig_id, custom_ig_id.getValue());

  Serial.print("Connected, IP:");

  Serial.println(WiFi.localIP());
  digitalWrite(WIFI_LED, HIGH);


}

void loop()
{

  if ((WiFi.status() == WL_CONNECTED))
  {
     getSocialCount("facebook");
    getSocialCount("instagram");
  }
  delay(90000); // 3 min de delay
}

Debug Messages

src\main.cpp: In function 'void setup()':
src\main.cpp:168:15: error: 'class WiFiManager' has no member named 'setMenu'
  168 |   wifiManager.setMenu(menu);
      |               ^~~~~~~
*** [.pio\build\nodemcuv2\src\main.cpp.o] Error 1

I have the same problems on other functions like setClass ..etc. How can I solve the problem ?
I'm using VSCode and PlatformIO

Thanks

Originally created by @MaralS on GitHub (May 13, 2022). Original GitHub issue: https://github.com/tzapu/WiFiManager/issues/1416 ### Basic Infos #### Hardware WiFimanager Branch/Release: Master Esp8266/Esp32: Hardware: ESP-12e, Core Version: i don't know ### Description Problem description ### Settings in IDE Module: NodeMcu Additional libraries: ### Sketch ```C++ #include <Arduino.h> #include <stdio.h> #include <string.h> #include <ArduinoJson.h> #include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <WiFiManager.h> #include <LittleFS.h> char access_token[250]; char fb_id[50]; char ig_id[50]; char url_request[350]; const int WIFI_LED = 5; const int REQUEST_LED = 4; const char *host = "graph.facebook.com"; const int httpsPort = 443; void getSocialCount(String account) { String url; WiFiClientSecure httpsClient; // Declare object of class WiFiClient Serial.println("======================================"); if (account == "instagram") { strcpy(url_request, "/"); strcat(url_request, ig_id); strcat(url_request, "?access_token="); strcat(url_request, access_token); strcat(url_request, "&fields=followers_count"); url = url_request; Serial.println("===========GET IG FOLLOWERS==========="); } if (account == "facebook") { strcpy(url_request, "/"); strcat(url_request, fb_id); strcat(url_request, "?access_token="); strcat(url_request, access_token); strcat(url_request, "&fields=fan_count"); url = url_request; Serial.println("===========GET FB FAN COUNT==========="); } Serial.println("======================================"); Serial.println("URL Request : " + url); Serial.println(host); httpsClient.setInsecure(); // permet de se passer du fingerprint du certificat SSL httpsClient.setTimeout(3000); // 3 s sec avant d'afficher la requete delay(1000); Serial.print("HTTPS Connecting : "); Serial.println(host); int r = 0; // retry counter while ((!httpsClient.connect(host, httpsPort)) && (r < 30)) { delay(100); Serial.print("."); r++; } if (r == 30) { Serial.println("Connection failed"); } else { Serial.println("Connected to web"); digitalWrite(REQUEST_LED, HIGH); } httpsClient.print(String("GET ") + url + " HTTP/1.0\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); Serial.println("Request sent"); while (httpsClient.connected()) { String line = httpsClient.readStringUntil('\n'); if (line == "\r") { Serial.println("Headers received"); break; } } Serial.print("Request result :"); String line; while (httpsClient.available()) { line = httpsClient.readStringUntil('\n'); // Read Line by Line Serial.println(line); // Print response } Serial.println("Deserialization process"); DynamicJsonDocument doc(96); // For ESP32/ESP8266 you'll mainly use dynamic. Serial.setTimeout(18000); DeserializationError error = deserializeJson(doc, line); if (!error) { if (account != "instagram") { int fan_count = doc["fan_count"]; // FB Serial.print("Facebook Fans : "); Serial.println(fan_count); } else { int followers_count = doc["followers_count"]; // IG Serial.print("Instagram followers : "); Serial.println(followers_count); } } else { Serial.print(F("deserializeJson() failed: ")); Serial.println(error.f_str()); return; } digitalWrite(REQUEST_LED, LOW); Serial.println("Closing connection"); } void setup() { // Serial.begin(74880); // BAUDS FOR WEMOS DI MINI Serial.begin(115200); // BAUDS FOR NODEMCU Serial.println(""); delay(500); pinMode(WIFI_LED, OUTPUT); pinMode(REQUEST_LED, OUTPUT); digitalWrite(WIFI_LED, LOW); digitalWrite(REQUEST_LED, LOW); WiFiManager wifiManager; // id/name, placeholder/prompt, default, length WiFiManagerParameter custom_access_token("accessToken", "Access Token", access_token, 250); WiFiManagerParameter custom_fb_id("fbId", "Fb Id", fb_id, 50); WiFiManagerParameter custom_ig_id("igId", "IG Id", ig_id, 50); wifiManager.addParameter(&custom_access_token); wifiManager.addParameter(&custom_fb_id); wifiManager.addParameter(&custom_ig_id); WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP WiFi.hostname("Social Counter Device"); Serial.println("======================================"); Serial.println("============WIFI CONNECTION==========="); Serial.println("======================================"); Serial.println("Connection..."); wifiManager.resetSettings(); wifiManager.setDebugOutput(false); // evite le long log qui affiche toutes les informations pour se connect std::vector<const char *> menu = {"wifi"}; wifiManager.setMenu(menu); bool success = wifiManager.autoConnect("SOCIALCOUNTER-AP"); if (!success) { Serial.println("Error: failed to connect"); } // read updated parameters strcpy(access_token, custom_access_token.getValue()); strcpy(fb_id, custom_fb_id.getValue()); strcpy(ig_id, custom_ig_id.getValue()); Serial.print("Connected, IP:"); Serial.println(WiFi.localIP()); digitalWrite(WIFI_LED, HIGH); } void loop() { if ((WiFi.status() == WL_CONNECTED)) { getSocialCount("facebook"); getSocialCount("instagram"); } delay(90000); // 3 min de delay } ``` ### Debug Messages ``` src\main.cpp: In function 'void setup()': src\main.cpp:168:15: error: 'class WiFiManager' has no member named 'setMenu' 168 | wifiManager.setMenu(menu); | ^~~~~~~ *** [.pio\build\nodemcuv2\src\main.cpp.o] Error 1 ``` I have the same problems on other functions like setClass ..etc. How can I solve the problem ? I'm using VSCode and PlatformIO Thanks
kerem closed this issue 2026-02-28 01:29:03 +03:00
Author
Owner

@MaralS commented on GitHub (Jun 7, 2022):

Hello, anyone can help please ?
Thank you so much

<!-- gh-comment-id:1148560364 --> @MaralS commented on GitHub (Jun 7, 2022): Hello, anyone can help please ? Thank you so much
Author
Owner

@tablatronix commented on GitHub (Jun 7, 2022):

Only guess would be you are using an older version and not actually git? OR wifimanager is out of scope?

Another issue can be you have duplicate libraries

<!-- gh-comment-id:1148796681 --> @tablatronix commented on GitHub (Jun 7, 2022): Only guess would be you are using an older version and not actually git? OR wifimanager is out of scope? Another issue can be you have duplicate libraries
Author
Owner

@MaralS commented on GitHub (Jun 8, 2022):

Only guess would be you are using an older version and not actually git? OR wifimanager is out of scope?

Another issue can be you have duplicate libraries

I installed Wifi manager with Platform IO it's the version
image

<!-- gh-comment-id:1149664114 --> @MaralS commented on GitHub (Jun 8, 2022): > Only guess would be you are using an older version and not actually git? OR wifimanager is out of scope? > > Another issue can be you have duplicate libraries I installed Wifi manager with Platform IO it's the version ![image](https://user-images.githubusercontent.com/19915917/172579574-89e3902d-8f07-415a-9822-8212954e1c1c.png)
Author
Owner

@MaralS commented on GitHub (Jun 8, 2022):

image
I only have two versions available and I installed the most recent one. Maybe I have to do something differently.
Thanks for helping me 😄

<!-- gh-comment-id:1149669061 --> @MaralS commented on GitHub (Jun 8, 2022): ![image](https://user-images.githubusercontent.com/19915917/172579976-8bf72662-83c9-4dd8-a506-d15890546b1e.png) I only have two versions available and I installed the most recent one. Maybe I have to do something differently. Thanks for helping me 😄
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/WiFiManager#1212
No description provided.