スクリーンショット_2019-11-10_17

大人の自由研究(2017)〜Spotify Web APIを叩く〜その2

SpotifyのWeb APIを使うにあたり、Spotifyのアカウントが必要となりますので、適宜登録をしましょう。そのアカウントを使ってデベロッパー登録が必要となります。下記の記事がとても参考になりますので、是非、一読を。

FileMakerで処理する前の準備項目

・Spotifyのアカウント(無料/有料)を作成する
・Spotifyのアカウントを用いて、デベロッパーとして登録を行う。
・接続するクライアントアプリケーションの登録を行う。
・登録したクライアントアプリケーションのClient IDとClient Secretを確認する。

Developersにサインインし、「DASHBAORD」を開いた状態。登録済のクライアントアプリケーションが表示される。そもそもクライアントアプリとしてFileMakerを使うのか!?っというツッコミは気にしないで進めます。

スクリーンショット 2019-11-10 17.55.22

スクリーンショット 2019-11-10 18.07.42

とりえあず完成したものを説明をと思ったのですが、WebViewでSpotifyのデモができるようにしているのですが、動きません(笑)

APIの利用方法と動作確認について説明をしたいと思います。「CONSOLE」をクリックします。

スクリーンショット 2019-11-17 16.23.53

Console_Searchをクリック

「Console」の左側にある一覧から「Search」を選びます。アルバム単位やアーティストでも検索は可能なのですが、全般的な検索し該当する楽曲を拾いたいので、「Serach」のAPIを利用しています。

Console_Searchをクリック後

Endpointにある「v1/serach」をクリックすると、利用方法の詳細と、APIの使いかたが表示されます。画面の左上がAPIの簡単な説明で、「Description」、「Endpoint」、「HTTP Method」、「OAuth」の4項目があり、利用方法が記載されています。

Searh_APIの確認

その下のフィールドには、検索する際の入力欄があり、「Oauth Token」にある「Get Token」を押して、認証に必要なトークンを取得できます。
右側の黒い画面は、cURLでの記載例が書かれています。このキャプチャーでは、トークンが表示されていますが、実際は「Get Token」を押した後に表示されます。

curl -X "GET" "https://api.spotify.com/v1/search" -H "Accept: application/json" -H "Content-Type: application/json" -H "Authorization: Bearer XXXXXXXX_XXXXXXX"

APIを利用する際の詳しい説明は、「DOCS」をクリックすると、より詳しい説明が表示されます。基本的に英語になりますが、試すこともできるので、利用するAPIを決める前には色々と試してから、どのAPIを利用するのかを決めましょう。

スクリーンショット 2019-11-17 16.39.59

まずは叩いてみましょう。*(アスタリスク)は必須項目なので、「q」と「type」は必ず入力します。下記の例だと、「market」に「JP」と、「limit」と「offset」を指定していますが、必須ではないので、特段してがなくても問題はありません。

スクリーンショット 2019-11-17 16.44.55

「TRY IT」をクリックすると、画面の右側の黒いところにJSON形式のデータが返ってきます。

トークンが切れていた場合は、statusが「401」を返しています。この場合は、トークンを再度、取得して実行しましょう。

画像9

検索結果がない場合を試してみます。「q」をわざと「星野源五郎」で検索してみています。「total」の値が「0(ゼロ)」で返ってくる場合は、検索結果がないことになります。

Result_結果なし

検索結果がある場合は、「total」に「1」が返されてきます。実際は、検索結果の確認後に、検索結果が表示されていますので、返ってきたデータをFileMaker側で処理して、必要なフィールドに値をセットしていきます。

Result_検索結果がある場合

次回は、FileMakerで処理する流れを説明したいと思います。


よろしければサポートをお願いします。頂いたサポートはAPIの周り調査や実験に使わせて頂きます。スピーカーの作成や、ホロスコープの依頼もあれば、メッセージをください。