SUZURI APIを用いたアプリケーションを作る時に細かなTips集
🎅GMOペパボ エンジニア Advent Calendar 2024の14日目です。
13日目はOCRとLeafletでイベント会場の目的地が一目で分かるマップを作ったでした。即売会やイベントでクリエイターさんのブースをパンフレットから探すのは大変なので、フォローしているアカウントを元に、自動でマップにピンが立つのはとても便利でした〜!
この記事では、SUZURI APIを用いたアプリケーションを作る時に細かなTipsを書いていきます。
SUZURIとSUZURI APIについて
SUZURI APIの前にSUZURIを知らない方向けに大まかなサービス内容を紹介します。
SUZURIはグッズ作成・販売、デジタルコンテンツ販売、コミッションを行えるサービスです。
グッズ作成・販売では、受注生産のため1点からのグッズ販売ができます。
SUZURI APIはSUZURIの一部の機能を外部のアプリケーションから利用できるものです。
できることしては、
- グッズの作成、削除
- グッズの検索
- ズッキュン(お気に入り)の登録と削除
などです。
利用料金はなく、SUZURIユーザーであれば誰でもお使いいただけます。
SUZURI APIに利用方法と差異
SUZURI APIは二つの方法で利用できます。
- アプリケーションで1つのToken を使って、APIを利用
- OAuthを使って、APIを利用
https://suzuri.jp/developer/documentation/v1#auth
今回はSUZURI APIではOAuth認証を利用しました。利用方法による主な違いは以下の通りです。
1.Tokenを使ったAPI利用 | 2.OAuthを使ったAPI利用 | |
---|---|---|
グッズ作成時の販売ショップ | Tokenを発行したユーザー(=アプリケーションの運営者)のショップ | 利用ユーザーにショップ |
取得できる商品情報 | 公開されたグッズ + Tokenを発行したユーザー(=アプリケーションの運営者)の非公開グッズ | 公開されたグッズ + アプリユーザーの非公開グッズ |
どちら方法で利用するかは、以下に2ポイントで決めています
- トリブンのもらう人が誰か
- アプリユーザーの非公開グッズを取得したいか
具体的にどんなふうに選んでいるかご紹介します。
以上のようなPR画像生成ツールを作った時には、OAuthを使ったAPI利用を採用しました。理由としては以下の通りです。- グッズを作成しないのでトリブンが発生しない
- セールに合わせてグッズを公開するというアプリユーザがいるため、非公開グッズを取得したい
OAuthを使ったAPI利用では、アプリケーションの登録が必要です。登録を行うと、
OAuth Client id
とOAuth Client Secret
が発行されます。
Callback URLは、httpsである必要があるため、自分はOrbstackなどのツールを使って、Local環境にhttpsでアクセスできるようにしています。
次の章からは実際にSUZURI APIを使うときのTipsを紹介します。
sampleImageUrl
が使いやすい
グッズ画像の取得目的では、グッズの画像を表示する時には、APIのレスポンスに含まれる、ProductのsampleImageUrl
、pngSampleImageUrl
を、imgタグのsrcに指定しするのが一番簡単です。
sampleImageUrl
ではwebp画像で、pngSampleImageUrl
ではpng画像が取得できます。
imageUrl
などでは、各パラメータを自分たちで置き換える必要があるため、size指定や色指定などのこだわりがある時に使います。
sampleUrl
が使いやすい
商品ページへの遷移にはグッズの詳細ページに遷移するには、Productに含まれるsampleUrl
が一番簡単です。
クリック時の遷移先にsampleUrlを指定すると、SUZURIのグッズ詳細ページに遷移できます。
次は、これらを組み合わせた実践的な内容を紹介します。
画像をアップロードして、グッズのプレビューしたいときにもProductを一回作る
ユースケースとしてよくある画像アップロードして、プレビューして購入を決めるというフローをSUZURI APIで実現する方法を紹介します。
流れとしては
- MaterialをPOST
- レスポンスに含まれるProductのsampleImageUrlを使って画像を表示
- 購入に進む
商品ページいくには、ProductのsampleUrlへ遷移する - 修正に戻る
MaterialをDeleteする。
画像を表示を行うためには、前述したようにProductからsampleImageUrlを取得する必要があります。そこで/api/v1/materials
へPOSTリクエストを行い、Productを作成します。
bodyのjsonの一例です。
textureに画像URL、データURIのいずれかを指定します。
productsに配列で、作りたいItemのIdと、オプションがあれば指定します。
{
"texture": "https://old.yukyu.net/images/works/live-2d-model-yukyu/yukyu-v.png",
"title": "yukyu",
"price": 100,
"description": "yukyuのグッズです",
"products": [
{
"itemId": 1,
"published": true
}
]
}
POSTリクエストを行うと、レスポンスに作ったProductがあるのでsampleImageUrlでプレビューを表示できます。
もし、購入に進むのであればProductに含まれるsampleUrlへ遷移します。
修正にもどるや、購入しないなどの場合は、/api/v1/materials/{material_id}
へDELETEリクエストを行うことで、MaterialやProductの情報を削除できます。
ItemIdが知りたい時にItem一覧を取得する
/api/v1/items
をGETリクエストを行うと、現在取り扱っているItemの一覧が返ってきます。
これから作りたいItemの情報をとり、ItemIdを知ることができます。
2024/12/14時点でのレスポンスをgistで公開しておきます。
SUZURI APIを楽しんでほしい
SUZURI APIは、アプリケーションから有体物を作ることができる(購入すれば)とても楽しいものなので、ぜひたくさんの人に使って欲しいなと思っています。
今までにSUZURI APIでつくったもの
- クリエイターサポートツール(PR画像生成ツール) : https://zenn.dev/yu_9/articles/5fa3a6c9332afd
- BECCHU(別注システム) : https://zenn.dev/yu_9/articles/yu9-becchu-2021
- ワクワクおえかきランド(新卒研修で作成したTシャツが作れるドット絵エディタ) : https://tech.pepabo.com/2022/07/14/12th-training-frontend/
- LINEでTシャツを作成するbot : https://zenn.dev/articles/2022-12-31-line-data-convert
- LLMを使ってチャット形式でTシャツをつくる : https://www.youtube.com/watch?v=mIQXjPEEStA
- スリスリAIチャット(グッズ検索、雑談ができるチャットシステム) : https://tech.pepabo.com/2023/09/15/introducing-surisuri-ai-chat/
- hakuran(引用をTシャツにするアプリ) : https://zenn.dev/yu_9/articles/5c30a7401ca62c
- プロフィールスマホストラップジェネレーター(s-toolの一部) : https://s-tool.yukyu.net/
- PR画像生成ツール(s-toolの一部) : https://s-tool.yukyu.net/
🎅GMOペパボ エンジニア Advent Calendar 2024の14日目でした!!!!
15日目は、ほみるんさんです!
Discussion