PHP:使用web-api添加曲目以显示播放列表 - JSON ERROR

问题描述 投票:0回答:2

我试图用一个小的PHP脚本添加一个轨道到我自己的playlist,但它将无法正常工作。

我总是得到错误:

{ "error" : { "status" : 400, "message" : "Error parsing JSON." } }

这是添加曲目的spotify文档:https://developer.spotify.com/web-api/add-tracks-to-playlist/

有谁知道问题可能是什么?

$token='my Access token';

$headers = array(
    "Accept: application/json",
    "Authorization: Bearer " . $token
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.spotify.com/v1/users/*myusername*/playlists/*myplaylistID*/tracks' );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_POSTFIELDS, 'uris=spotify:track:3DXncPQOG4VBw3QHh3S817' );
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result=curl_exec($ch);

print "$result";

$result = json_decode($result, true);
curl_close($ch); 
php json curl spotify
2个回答
1
投票

我终于解决了:

$key='***AccessKey***';

$ url ='https://api.spotify.com/v1/users/USERID /播放列表/播放列表ID /曲目?uris = spotify%3Atrack%3A3DXncPQOG4VBw3QHh3S817';

$headers = array(
        "Content-Length: 0",
        "Accept-Encoding: gzip, deflate, compress",
        "User-Agent: runscope/0.1",
        "Content-Type: application/json",
        "Authorization: Bearer ".$key);


    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = json_decode(curl_exec($ch), true);
    curl_close($ch);
    print_r($response);

0
投票

试试这个:

$data = array('uris' => 'spotify:track:3DXncPQOG4VBw3QHh3S817');
$data_json = json_encode($data);

// ...

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.spotify.com/...');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
curl_setopt($ch, CURLOPT_HTTPHEADER, array
(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: '.strlen($data_json),
    'Authorization: Bearer '.$token
));  

$result = curl_exec($ch);

// ...
© www.soinside.com 2019 - 2024. All rights reserved.