PHP对接LaMetric与Spotify API问题:LaMetric返回[X]求助
解决Spotify
me/player/currently-playing API返回异常导致LaMetric同步失败的问题 验证Spotify授权权限与Token有效性
- 确认你的Access Token已申请
user-read-currently-playing和user-read-playback-state权限,这两个是获取当前播放曲目的必填权限,缺一则会导致API返回权限错误。 - 用curl直接测试API:
若返回403,说明权限不足;返回401则是Token过期,需执行刷新流程;返回204则表示当前无曲目播放。curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.spotify.com/v1/me/player/currently-playing
- 确认你的Access Token已申请
确认Spotify播放状态
- 确保你授权的Spotify账号正在客户端(桌面/移动端/网页端)播放曲目,无播放状态时API不会返回
item字段。 - 检查是否有其他设备占用播放会话,多设备登录可能导致API无法正确获取当前播放信息。
- 确保你授权的Spotify账号正在客户端(桌面/移动端/网页端)播放曲目,无播放状态时API不会返回
排查PHP请求逻辑
- 检查请求头是否正确设置
Authorization: Bearer {access_token},注意Bearer后的空格,拼写错误会直接导致请求失败。 - 强制使用GET请求方式,部分错误代码可能误用POST请求该接口。
- 打印API返回的完整响应内容,不要只判断
item字段,调试代码示例:$context = stream_context_create([ 'http' => ['header' => "Authorization: Bearer {$access_token}\r\n"] ]); $response = file_get_contents('https://api.spotify.com/v1/me/player/currently-playing', false, $context); $result = json_decode($response, true); // 输出完整响应以便定位问题 var_dump($result);
- 检查请求头是否正确设置
优化LaMetric响应逻辑
- 即使API无
item返回,也应返回LaMetric可解析的默认内容,避免显示错误标记[X],修改分支代码:if (!isset($result['item'])) { echo json_encode([ 'frames' => [['text' => '无音乐播放', 'icon' => 'i2544']] ]); exit; }
- 即使API无
内容的提问来源于stack exchange,提问作者Pierre-Marie
相关产品推荐
相关产品推荐

