所以我想从ESP8266控制我的Spotify。我想从基础开始,这样我可以对整个过程有一个整体的认识,并将其集成到其他项目中。 Spotify提供了这些curl命令供使用,但ESP8266并不是curl ...我不确定如何将它变成:curl -X "PUT" "https://api.spotify.com/v1/me/player/play" -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer putsomerandomstuffherethisisanauthtoken"
变成ESP可以使用的东西...我已经有了基本的ESP库,例如{{1 }}等。如果有人可以指出正确的方向,那就太好了。谢谢!
答案 0 :(得分:0)
您将要使用HTTPClient
库。
您的代码应如下所示:
#include <ESP8266HTTPClient.h>
#define SPOTIFY_AUTHORIZATION_TOKEN "Bearer putsomerandomstuffherethisisanauthtoken"
// easily get fingerprints with https://www.grc.com/fingerprints.htm
#define SPOTIFY_FINGERPRINT "AB:BC:7C:9B:7A:D8:5D:98:8B:B2:72:A4:4C:13:47:9A:00:2F:70:B5"
void spotify_play() {
HTTPClient client;
client.begin("https://api.spotify.com/v1/me/player/play", String(SPOTIFY_FINGERPRINT);
client.addHeader("Accept", "application/json"");
client.addHeader("Content-Type", "application/json");
client.addHeader("Content-Length", "0");
client.addHeader("Authorization", SPOTIFY_AUTHORIZATION_TOKEN);
int httpCode = client.sendRequest("PUT");
if(httpCode == -1) {
Serial.printf("http error: %s\n", http.errorToString(httpCode).c_str());
} else {
Serial.printf("HTTP status code %d\n", httpCode);
}
}
Spotify API文档应列出成功或错误后返回的HTTP状态代码。成功应该在200范围内。
指纹是为了让您验证自己是否在与正确的网站进行交谈。当Spotify更改其SSL证书时,您需要更新指纹。您不需要使用curl
或在功能更强大的系统上执行此操作,因为它们更容易获得证书。有been some work to make this easier on the ESP8266,但我不确定那有多可靠。
[已编辑以添加内容长度标头]