えいのうにっき

誤字脱字・記述の誤りなどはこちら https://github.com/a-know/blog.a-know.me へお願いします

Pixelaアップデート情報・Patreon webhook を使って "支援" に重きを置いたゆるい月額サブスクリプションサービスをつくる

先日の大型連休を使って、Pixela のアップデートをおこないました! v1.11.0 です!

github.com

連休とおなじく、アップデートも大型です! 今回は、Pixelaを支援してくれる人($1/月 の課金登録をしてくれた人・Pixela Supporter と呼んでいます)だけが使える限定機能を含むリリースとなります!

リリース内容

上記のリリースノートにも記載していますが、ざっくり以下のようなかんじです。

  1. ユーザー毎のグラフを一覧で見られるエンドポイント /graphs.html を追加しました
  2. Graph エンティティに isSecret フィールドを追加しました
    • これが true のグラフは、上述のグラフ一覧ページで非表示になります。あまり公にしたくないグラフがあるんだけどな...って方にはオススメです
    • この機能は、Pixela Supporter 限定機能となります
  3. User エンティティに thanksCode フィールドを追加しました
  4. Pixela Supporter である場合に、以下のページでユーザー名にバッジが付与されるようにしました

f:id:a-know:20190508000425p:plain
バッジはこんなかんじです

どのようにして月額サブスクリプションを実現したか

今回の Pixela Supporter のための月額サブスクリプションは、Patreonを活用して実現しました。

www.patreon.com

Patreon(パトレオン?ペイトレオン?)は、クラウドファンディングプラットフォームです。存在自体は Rebuild.fm を聴いて知っていたのですが、実際に使ってみたのは今回が初めて。 クラウドファンディングプラットフォームは数あれど、月額でのサブスクリプションができるのは面白いなーと思っていました(他のプラットフォームでもできるところはあるのかもしれないけど)。あと、↓のような気持ちは以前から持っていたこともあって、それが、「まずはPatreonのドキュメントを読んでみるか」というモチベーションになりました。

で、見てみると、「パトロン(支援者)登録したとき・解除したときにWebhookリクエストを飛ばせる」ことがわかりました。

docs.patreon.com

これを見て思いついたのが、以下のようなかんじで Pixela と Patreon とを連携させること。

  1. 支援者が支援登録する(パトロンになる)
    • Webhookリクエストがおこなわれる。リクエスト先は pixe.la
  2. Webhookリクエストを受け、Payloadに含まれるPatreonユーザー情報を取得する
  3. 受けた情報のうちのいくつかを元に thanks-codeレジストレーションコード的なもの)を生成する
    • 同時に、発行した thanks-code を pixe.la のデータストアに登録する
  4. WebhookリクエストのPayloadに含まれているEmail(パトロン登録してくれたPatreonアカウントの登録メールアドレス)宛に thanks-code を送付する

で、実際にこの方法で実現させられています。

支援解除のときにも Webhook リクエストが飛んでくるので、そのときには Pixela のデータストアから thanks-code を削除するだけでいい。そしてそのユーザーが Pixela Supporter であるかどうかについては、「ユーザーの thanks-code とデータストアに登録されている thanks-code が一致しているかどうか」を見ればいい。シンプル。

なぜ月額サブスクリプションを導入したのか

Pixela を今後も末永く続けていくためには幾許かのお金が必要だから......ということはそのとおりなのですが、この機能を実装したのは「お金欲しさから」だけではなく、むしろこの「Patreon と Webサービスとの掛け合わせ」、「Webサービスがより簡単に・気楽に支援を受けられる方法がありそうなこと」に可能性を感じた・それを本当に実現させてみるところまでやってみたかった、というのが本心です...、、本当ですよ?w

あ、だから、もしこの連携の仕方になにかツッコミどころがありそうであれば教えてほしいです。

ちなみにPatreon、本当なら1ドル未満......具体的には 50セント/月 くらいから支援登録できると良かった。Pixela はそれくらいのサービスだとも思ってるし。

まぁ、Patreon自体のマネタイズを考えると $1以上から というのは無理もないとは思うけど。w

なぜこのような仕組みにしたか

このエントリのタイトルにもしてるけど、「あくまでも、PixelaとPixelaをつくってる僕を支援してもらう、というのが第一」という雰囲気にしたかったから。...気持ちの問題かもしれないけど。支援することにより Pixela のいくつかの機能が使えるようになる、というのは、あくまでオマケ、というかんじにしたい。

SUZURIもめっちゃいいサービスだなとは思うのだけど、なにせ動く金額がミニマムでも大きすぎるのが唯一の難点かなぁ。50セント(50円)くらいがいい。

夢は大きく。w

以上です

と、いうわけで、Pixela Supporter の方にも・そうでない方にも、そしてもちろんブリーダーのみなさんにも楽しんで使っていただけるサービスに今後もしていきたいと思ってます、よろしくお願いします。