我使用脚本php-soundcloud(Oauth 2)并想要更改购买链接的标题(购买此曲目)。
我可以更新链接,但我无法更改链接文本。
我使用此代码:
$soundcould->put('https://api.soundcloud.com/tracks/56649403', array(
'track[purchase_url]' => 'http://website.com/',
'track[purchase_title]' => 'Support me' // whitout this, it work
));
但它返回一个错误:请求的网址以HTTP code 422回复。
当我删除track[purchase_title]
时,它会起作用,所以问题就在于变量!
更改链接标题必须是特别的东西吗?
Soundcloud对其API的使用施加了限制吗?
除了更改变量purchase_title
?
答案 0 :(得分:2)
这不起作用的原因是因为只能在高级帐户上更改purchase_url和purchase_title。我会在文档中更清楚地说明这一点!
这是一个代码示例,可以为高级帐户提供技巧:
<?php
require_once 'Services/Soundcloud.php';
$client = new Services_Soundcloud('client_id', 'client_secret', 'redirect_uri');
$client->setAccessToken('your-access-token');
$track_url = 'https://api.soundcloud.com/tracks/52652023.json';
$response = json_decode($client->put($track_url, array(
'track[purchase_url]' => 'http://website.com',
'track[purchase_title]' => 'Support me'
)));
?>
如果这不起作用,问题出在其他地方。给我发电子邮件,我可以帮助您进一步调试。
答案 1 :(得分:0)
我不确定但是试试看。我认为这对你有帮助: -
请参阅指南: -
http://developers.soundcloud.com/docs/api/guide
试一试
<?php
$track = <<<EOH
<track>
<downloadable>true</downloadable>
<purchase_url>http://website.com/</purchase_url>
<purchase_title>true</purchase_title>
</track>
EOH;
try {
$response = json_decode(
$soundcloud->put(
'tracks/1',
$track,
array(CURLOPT_HTTPHEADER => array('Content-Type: application/xml'))
),
true
);
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}