Getting authentication failure when using POST from ESP32
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Trying to POST a CSV bulk update to update my channel.
Failing and getting
"401" as an http error code, and
"Please provide proper authentication details." as body.
Same thing does work with CURL.
What am I missing ????
thanks for the help.
#include <Arduino.h>
const char* ssid = "XXX";
const char* password = "XXX";
#include <WiFi.h>
#include <WiFiMulti.h>
#include <HTTPClient.h>
#include <WiFiClientSecure.h>
void setup() {
Serial.begin(115200);
initiateNetwork();
thingsSpeakLogger();
}
void loop() {}
int thingsSpeakLogger(){
WiFiClientSecure *client = new WiFiClientSecure;
HTTPClient https;
String payload = "write_api_key=XXXXXXXXXXX&time_format=relative&updates=4,1.1,2,0.3,,,6,7.7,0.8,41.2,19.5,100,ok|3,1,2,3,4,5,6,7,8,41.2,25.1,110,rising";
String connectionString = "https://api.thingspeak.com/channels/12345678/bulk_update.csv";
if (https.begin(*client, connectionString)) {
https.addHeader("Content-Type", "x-www-form-urlencoded");
Serial.println(https.POST(payload));
Serial.println(https.getString());
delete client;
}
}
void initiateNetwork() {
WiFi.begin(ssid, password); delay(1000);
while (WiFi.status() != WL_CONNECTED) {
delay(300); Serial.print(".");
}
}
0 comentarios
Respuestas (3)
Vinod
el 27 de Mzo. de 2020
1 comentario
Christopher Stapels
el 27 de Mzo. de 2020
The example Vinod shared should work well on ESP 32 as well.
Can you try the regular update in a browser windor with the same api key?
https://api.thingspeak.com/update.json?api_key=xxxxxxxxxxxxxxxx&field1=10
Also double check your channel ID. I have made that error myself before.
avner gideobi
el 27 de Mzo. de 2020
1 comentario
Vinod
el 27 de Mzo. de 2020
If you are implementing your own connectivity, I would recommend taking a look at this:
It has an implementation you can use as a starting point for your own.
avner gideobi
el 27 de Mzo. de 2020
1 comentario
Vinod
el 7 de Abr. de 2020
I would look at the response code you are getting to try and troubleshoot the problem. A 401 response usually means that you have an incorrect API key, or it doesn't correspond to the channel you are updating. If you are able to get it working in CURL, then I would compare the CURL request to what is being sent from your Arduino as a starting point.
Comunidades de usuarios
Más respuestas en ThingSpeak Community
Ver también
Categorías
Más información sobre REST API en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!