Vinyl Collections (レコード情報管理アプリを作る 4.5/5)
ついに完結か。というか書くぞ書くぞ詐欺を続けてはや、2年経過。時間の流れは早い。機能自体は作ったけど、ちゃんとまとめいない状況でしたが、ついにまとめることに。
Discogsのコレクションへの追加機能
Discogsのコレクションとの同期機能
変更前と変更後の状況は下記の通りです。やっぱり機能があると便利。
変更前:
1. カタログコードを調べる。
2. NFCタグ用のURLをDiscogsで調べる。
3. Discogsにログインする。(二要素認証が地味にめんどい)
4. カタログ番号から調べてコレクションへ追加。
変更後:
1. Vinyl Collectionsにログインする
2. カタログコードで該当のレコードを調べる。
3. Vinyl Collectionsから直接、Discogsへコレクションの追加。
実際の画面はこちら。「Discogs id」を押すとコレクションへ追加されます。作った人じゃないとわからない状態はよくありませんが、、、、このアプリはデザインがメンフェス風なので、それで良いのです。。。
内部処理をみていきます。作成当初は、コクションとの連携も視野に入ってましたが、コンテスト用のアプリのため、機能的には追加したかったけど、間に合わず、後回しにしてました。そもそもレコードの情報をAPI連携した管理するが目的だったので。
内部処理:
・FileMaker内のレコードとして保存し、その際にDiscogs idを取得する。
このDiscogs idがコレクションへ追加する際のIDとなる。
・API連携で、直接自分のコレクションへ追加する。
事前準備はこの3つ。APIは認証方法、エンドポイント、cURLがわかればできます。あとは、FileMakerのcURLにハマらなければ大丈夫です。
事前準備
・EndPointを確認する。
・User Tokenを控えておく。
・Collectionの追加先Folderを確認する
EndPointはAPIのドキュメント(英語のみ)があるので、適宜確認をしていきます。
EndPoint:Add To Collection Folder
Post /users/{username}/collection/folders/{folder_id}/releases/{release_id}
ユーザの情報を直接編集するためトークンが必要となります。UserTokenは、Discogsにログインし、[ 設定 ] から [ 開発者 ]を選択すると、[ 現在のトークン ] というところから取得が可能です。
さらに、APIのドキュメントを確認するとfolderは「0」と「1」の初期フォルダがあるとのこと。Deeplの翻訳はこちら。
作成したスクリプトをみると「0」を指定しているので、ALLフォルダに追加しています。DiscogsのAPI自体はシンプルに動作するので検証も楽です。
EndPoint: "https://api.discogs.com/users/tyara_zou_0117/collection/folders/0/releases/" & $releases_id
cURL: "-X POST -H \"Authorization: Discogs token=jorziqXXXXXXX\""
実際に作成したスクリプトをみてみましょう。
中身は至ってシンプル。コメントはこの記事を書きながら、おおよその日付で追記しました。開発時のメモは大切です。完成で満足してはならず、あとから見たときに何を考えてたのかを残すことはとても大事。
さて、これでDiscogsへのコレクション追加ができたと大喜び。
けっこうサクっとできたので、調子にのってコレクションとの同期機能を作ると息込んだところ、コレクションのJSONデータをバラすのに、大ハマりすることは、想定していませんでした。
(たいがいはあとで試すと簡単にできたりするので、怖くて見返していなません)
で、ハマった箇所をちゃんとまとめれるかが不安ですが、このシリーズの完結に向けて、年内(2024)に記事を書き終えたいと思っています。
できたことを書くだけだと面白くなくて(記事として必要ですが、、、)、やっぱり、ハマったところをどう解決したが記事の醍醐味かと。誰かがハマってて、その解決策をまとめてくれたことが誰かに役立つので、そこが大事かと。だんだん、本編の内容から遠ざかっていますので、これで終了!