Cosmos and Chaos
Eyecatch

GumroadのAPIの利用方法

Gumroadでは販売商品の各種データを取得するAPIが無料で利用できます。
その方法をメモしておきます。

Gumroadとは

自分でネットショップ(販売ページ)を作れるサービスです。
私も全ての機能を使いこなせていませんが、データをアップロードして販売する、という事が簡単にできます。
勿論実体のある商品を販売する事も出来ます。発送作業は自分で行う事になりますが。

一つのプロダクトに対してバリエーション(色違いやサイズ違い、オプションなど)を付けられるので便利です。
手数料は販売価格の8.5%+$0.30。
日本円での最低販売価格は99円なので、最大でも手数料は4割程度。

無料頒布が可能な事や、購入する側が自由に価格を決める設定にもできる事が良い点だと思います。
最近ではBOOTHでも可能ですが、APIが充実しているのはGumroadですね。

Gumroadは基本的に販売物は自分で宣伝する必要があるので、プロダクトを作成しただけではまず閲覧すらありません。
それを逆に利用して、個人的な制作物のやり取りにも利用できない事はないと思います。
何も情報の無い有料データをダウンロードするような奇特な人は滅多に居ないでしょうし。

他にも販売個数制限機能やディスカウント機能など、日に日に高機能になっているのですが把握しきれていないので割愛。

APIの注意点とサンプルコード

APIを使うには アクセストークンが必要です。
Gumroadにログインして、設定→「高度な」(Advancedの和訳…)から新しくアプリケーションを追加します。
適当な名前とリダイレクトURLを入力したらOK。

アクセストークンを発行したらメモしておきましょう。
かなり多くのデータが取れてしまうので、取扱注意です。

今回は販売コンテンツリストを作る事を考えます。
販売リストを新着順に並べて取得するAPIはそのまま提供されているのでそれを使いましょう。
下のURLにアクセスすると、json形式で返ってきます。

https://api.gumroad.com/v2/products?access_token=此処に先程取得したアクセストークン

このAPI、GumroadにアップロードしたりWebhooksで販売しているコンテンツのオリジナルデータへのURLまで取れてしまいますので扱いには本当に注意です。

あとはjsonからデータを取り出して処理するだけなので知っている方は読まなくて大丈夫です。以下、サンプルコード。

<ul><?php
	$api = 'https://api.gumroad.com/v2/products?access_token=アクセストークン';
	$gumroad = json_decode(file_get_contents($api));
	foreach($gumroad->products as $products){
		echo '<li><a href="'.$products->short_url.'">'.$products->name.'</a></li>';
	}
?></ul>

例えば販売ページを取得する場合は$products->short_urlで取得できます。
$products->urlだと販売コンテンツへの直リンクなので注意!
他にも色々取れるので、構造等はGumroad APIをご覧ください。

PHPで連続する改行をどうにかする

Gumroadに限った話では無いのですが、関連するので此処に記載。

GumroadのAPIを叩いて、説明文をプレーンテキストとして別の場所に表示させるという事をやっていたのですが、Gumroadのコンテンツ説明はリッチテキスト(HTML)で格納されています。

brタグやpタグをPHP_EOLに置き換えるだけだと改行が連続してしまいますので、正規表現で置き換えます。

// $text にはAPIから返ってくるコンテンツを格納
$text = str_replace(array("<p>","</p>","<br>"),PHP_EOL,$text);
$text = preg_replace("/\n{2,}/",PHP_EOL,strip_tags($text));

段落構造が失われてしまいますが、一先ずのかっこ悪さはこれで解消します。

また、Gumroadの説明文には、何も入力していなくても


と入っているので、説明文が無い時に処理をスキップする条件式は以下の様にしましょう。

if(strip_tags($text) == ""){break;}
Sophia

DTMとかやる人。