You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32谷歌照片时钟项目HTTPS连接问题排查求助

问题原因及解决方案

核心原因分析

  1. 短链接服务限制:photos.app.goo.gl是谷歌的短链接跳转服务,仅面向浏览器场景设计,直接用ESP32发起HTTPS请求会被服务器拒绝,这类链接不支持非浏览器的直接调用。
  2. User-Agent拦截:谷歌服务器会校验请求的客户端标识,ESP32的HTTPClient默认User-Agent过于简单,会被判定为非合法客户端。
  3. 证书验证异常:如果根证书配置错误,或者ESP32系统时间与实际时间偏差过大,会导致SSL证书验证失败,间接引发连接拒绝。
  4. 重定向未处理:短链接本身会跳转至实际照片资源URL,默认HTTPClient未开启自动重定向逻辑。

分步解决方案

1. 获取实际资源URL

在电脑浏览器中打开你的谷歌照片共享链接,按下F12打开开发者工具,切换到「网络」标签页,刷新页面后找到最终加载照片的请求(通常是lh3.googleusercontent.com开头的链接),复制这个实际URL替换代码中的GOOGLE_PHOTO_SHARE_LINK。

2. 设置合法的User-Agent

在https.begin()之后添加User-Agent设置,模拟浏览器请求:

https.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36");

3. 同步系统时间

ESP32需要正确的UTC时间来验证SSL证书有效期,添加NTP时间同步代码到setup()中:

#include <NTPClient.h>
#include <WiFiUdp.h>

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 8*3600, 60000); // 东八区偏移8小时

void setup() {
    // ... 原有WiFi初始化代码 ...
    
    timeClient.begin();
    while(!timeClient.update()) {
        timeClient.forceUpdate();
        delay(1000);
    }
}

4. 开启自动重定向(可选)

如果仍想使用短链接,强制HTTPClient处理重定向:

https.setFollowRedirects(HTTPC_STRICT_FOLLOW_REDIRECTS);

5. 证书验证排查(测试用)

如果不确定根证书是否正确,可临时关闭证书验证(仅用于测试,生产环境禁止):

client->setInsecure(); // 替换原有的setCACert行

若关闭后能连接,说明根证书配置错误,需重新获取谷歌照片服务对应的根证书(通过浏览器查看证书链并导出根证书)。

测试验证

修改代码后重新上传,打开串口监视器,若HTTP返回码为200则说明连接成功。

内容的提问来源于stack exchange,提问作者Cheetohzzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:44:56