如何使用ESP8266上的令牌对GitHub进行身份验证?
我可以从公共repo进行更新,现在我想使用令牌向GitHub进行身份验证,以便下载私有repo的固件,但我的连接被拒绝(错误代码-1) 我已经配置了证书和NTP时间,我不会把这个代码,因为它的工作。但是这里有一个问题 这是我的密码如何使用ESP8266上的令牌对GitHub进行身份验证?,github,esp8266,arduino-esp8266,Github,Esp8266,Arduino Esp8266,我可以从公共repo进行更新,现在我想使用令牌向GitHub进行身份验证,以便下载私有repo的固件,但我的连接被拒绝(错误代码-1) 我已经配置了证书和NTP时间,我不会把这个代码,因为它的工作。但是这里有一个问题 这是我的密码 BearSSL::WiFiClientSecure client; bool mfln = client.probeMaxFragmentLength("https://api.github.com", 443, 1024); // server m
BearSSL::WiFiClientSecure client;
bool mfln = client.probeMaxFragmentLength("https://api.github.com", 443, 1024); // server must be the same as in ESPhttpUpdate.update()
Serial.printf("MFLN supported: %s\n", mfln ? "yes" : "no");
if (mfln) {
client.setBufferSizes(1024, 1024);
}
client.setCertStore(&certStore);
HTTPClient http;
http.begin("https://api.github.com/repos/user/reponame/contents/firmware.bin");
http.addHeader("Accept", "application/vnd.github.v3+json");
http.addHeader("authorization", "Bearer token");
//http.setAuthorization("token");
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
return;
}
ESPhttpUpdate.setLedPin(LED_BUILTIN, LOW);
t_httpUpdate_return ret = ESPhttpUpdate.update(client, "https://api.github.com/repos/user/reponame/contents/firmware.bin");
我从未使用过更新功能,因为我无法进行身份验证。请查看您的代码。您正在设置
客户端
,但从未使用过它。您需要将其传递给http.begin()如下:
http.begin(client, "https://github.com/user/reponame");
否则,HTTP不知道如何使用您费尽心机设置的
BearSSL::WiFiClientSecure
。查看您的代码。您正在设置客户端
,但从未使用过它。您需要将其传递给http.begin()如下:
http.begin(client, "https://github.com/user/reponame");
否则,HTTP不知道如何使用您费尽心机设置的
BearSSL::WiFiClientSecure
。谢谢,我用HTTP.GET()
完美地连接到GitHub,现在的问题是httpupdate
函数,找不到任何文件,我得到下一个错误:HTTP\u UPDATE\u失败错误(-102):找不到文件(404)
,httpupdate的连接方式与httpclient不同。我需要传输参数或使用GET()下载的文件。请将其作为一个单独的问题发布。这样,与您最初发布的问题类似的其他人可以找到此问题。您可以接受此答案,因为它解决了您的问题,发布有关新问题的问题,然后接受解决该问题的答案。谢谢,我使用http.GE完美地连接到GitHubT()
,现在的问题是httpupdate
函数,找不到任何文件,我得到下一个错误:HTTP\u UPDATE\u失败错误(-102):找不到文件(404)
,另外,httpupdate的连接方法与httpclient不同。我需要传输参数或使用get()下载的文件。请将其作为单独的问题发布。这样,与您最初发布的问题类似的其他人可以找到此问题。您可以接受此答案,因为它解决了您的问题,发布有关新问题的问题,然后接受解决该问题的答案。