次のように、API から曲のユーザー評価を取得できます。API が成功の応答を返すので、開発者トークンとユーザー トークンが正しい形式で有効であることを理解しました。
$ echo $url
https://api.music.apple.com/v1/me/ratings/songs/1249510807
$ curl -H "Authorization: Bearer $token" -H "Music-User-Token: $userToken" $url
{"data":[{"id":"1249510807","type":"ratings","href":"/v1/me/ratings/songs/1249510807","attributes":{"value":1}}]}
ただし、評価を削除または設定しようとすると、API は HTTP 501 を返します。
ユーザーの評価を削除するには、APIドキュメントで説明されているように HTTP DELETE を送信しています。
$ curl -D - -X "DELETE" -H "Authorization: Bearer $token" -H "Music-User-Token: $userToken" $url
HTTP/1.1 501 Not Implemented
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 298
Expires: Sun, 02 Jul 2017 09:18:20 GMT
Date: Sun, 02 Jul 2017 09:18:20 GMT
Connection: close
<HTML><HEAD>
<TITLE>Unsupported Request</TITLE>
</HEAD><BODY>
<H1>Unsupported Request</H1>
DELETE to http://api.music.apple.com/v1/me/ratings/songs/1249510807 not supported.<P>
Reference #8.296cd417.1498987100.11cbeb73
</BODY></HTML>
評価を別の値に設定するには、ドキュメントで説明されているように、HTTP PUT と JSON ペイロードを使用します。
$ curl -D - -X "PUT" --data "{\"type\":\"rating\",\"attributes\":{\"value\":-1}}" -H "Content-type: application/json" -H "Authorization: Bearer $token" -H "Music-User-Token: $userToken" $url
HTTP/1.1 501 Not Implemented
Server: AkamaiGHost
Mime-Version: 1.0
Content-Type: text/html
Content-Length: 295
Expires: Sun, 02 Jul 2017 09:16:55 GMT
Date: Sun, 02 Jul 2017 09:16:55 GMT
Connection: close
<HTML><HEAD>
<TITLE>Unsupported Request</TITLE>
</HEAD><BODY>
<H1>Unsupported Request</H1>
PUT to http://api.music.apple.com/v1/me/ratings/songs/1249510807 not supported.<P>
Reference #8.296cd417.1498987015.11caa18d
</BODY></HTML>
HTML 応答は URL を HTTP としてダンプしますが、最初の要求が HTTPS であることを確認します。
これらのリクエストを問題なく実行している人はいますか?
前もって感謝します。
更新: 2017 年 7 月 12 日現在、API は文書化された応答を返しています。これは API 側のバグだと思われ、現在は修正されています。