見出し画像

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にログインし、[ 設定 ] から [ 開発者 ]を選択すると、[ 現在のトークン ] というところから取得が可能です。

UserTokenの取得方法

さらに、APIのドキュメントを確認するとfolderは「0」と「1」の初期フォルダがあるとのこと。Deeplの翻訳はこちら。

コレクション
Collectionリソースでは、ユーザーのコレクションを表示および管理することができます。
コレクションはフォルダに分類されます。すべてのユーザーはすでに2つの永久フォルダを持っています:
ID 0は 「All 」フォルダで、リリースを追加することはできません。
ID1の 「Uncategorized 」フォルダです。

https://www.discogs.com/developers/#page:user-collection,header:user-collection-collection-get

作成したスクリプトをみると「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)に記事を書き終えたいと思っています。

できたことを書くだけだと面白くなくて(記事として必要ですが、、、)、やっぱり、ハマったところをどう解決したが記事の醍醐味かと。誰かがハマってて、その解決策をまとめてくれたことが誰かに役立つので、そこが大事かと。だんだん、本編の内容から遠ざかっていますので、これで終了!


いいなと思ったら応援しよう!

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