Spotify Web API PHPを使ってこにょごにょする話の続き。
doroyamada.hatenablog.jp
最初に立ち返って、なにをやりたかったかと言うと、アルバムの曲名一覧をクリップボードにコピーできる状態で得たいということ。ブラウザ上でもコンソールでもどっちでもいいけど、まずはコンソールで。そういうサービスはいくつかあるけど、誤定年にすべての情報を出力してくれる。曲名だけでいいのに。なぜそういうことをしたいかというと・・・秘密。
spotify-web-api-phpのドキュメントを読むとgetAlbumというメソッドがあるっぽい。これで比較的かんたんにできるかも。
参考になったのは以下のサイト。
qiita.com
qiita.com
ドキュメントや他のサイトを見ながら、最終的にindex.phpは以下のように。account.phpではいろんな変数に値を代入している。
<PRE> require 'vendor/autoload.php'; include("account.php"); $session = new SpotifyWebAPI\Session($client_id, $client_secret, 'http://localhost/spotify/index.php'); $api = new SpotifyWebAPI\SpotifyWebAPI(); if (isset($_GET['code'])) { $session->requestAccessToken($_GET['code']); $api->setAccessToken($session->getAccessToken()); print_r($api->me()); echo "new\t"; print_r($session->getAccessToken()); echo "\nrefresh\t"; print_r($session->getRefreshToken()); echo "\n"; print_r($accessToken); } else { header('Location: ' . $session->getAuthorizeUrl(array( 'scope' => array( 'playlist-read-private', // プレイリスト取得 'playlist-modify-private', // プレイリスト変更 'user-read-private', 'playlist-modify' ) ))); die(); } <?php ?> </PRE>
どうやら一発でアクセストークンとリフレッシュトークンを取得できるもよう。
で、次の難関。リフレッシュトークンって何?twitterやinstagramのAPIでは固定のアクセストークンを使っていたが、spotifyの場合は有効期限が3600秒らしい。だったら1回ごとに上記のようなスクリプトでアクセストークンを新規取得すればいいんだが、固定のリフレッシュトークンとやらを使うとそれがかんたんにできるらしい。
そこでできあがったのが以下のalbum.php。
<?php require 'vendor/autoload.php'; use SpotifyWebAPI\Session; use SpotifyWebAPI\SpotifyWebAPI; if(isset($argv[1])){ if(preg_match('/https:\/\/open\.spotify\.com\/album\/(.+)/', $argv[1],$temp)){ include("account.php"); $session = new Session($client_id, $client_secret); $api = new SpotifyWebAPI(); $session->refreshAccessToken($RefreshToken); $api->setAccessToken($session->getAccessToken()); $album = $api->getAlbum($temp[1], 'JP'); foreach($album->tracks->items as $track){ }else { die("URL形式が違います。\n"); } }else{ die("引数を指定してください。\n"); } ?>
実行例。
kazz@oscar ~/bin/html/spotify# php album.php https://open.spotify.com/album/6DGrnjjO3O4hUEupUtPVv3 共通項 君のいない世界に 相思い あるわけないのその奥に 鏡の中から 愛と狂気とカタルシス ありよりのあり ジャンプ 妄想桜 漫画みたいに恋したい Guess!! SPLASH 虹を探しに 昨日のあたしに負けたくないの kazz@oscar ~/bin/html/spotify#
- アーティスト:まねきケチャ
- 発売日: 2019/12/18
- メディア: CD
次の目標はプレイリストにも対応すること。