WordPress + XML-RPCでiOSアプリのバックエンドを作るの続きです。
Literally WordPressはいまや0.9.2になりました。以前このサイトでも実験したイベントチケット販売などの機能も備えつつあるのですが、0.9.2ではiOSのアプリ内購入に対応しました。アプリ内購入の非消耗プロダクトですね。
アプリ内購入の仕組み
アプリ内購入の非消耗プロダクトというのは「一回買ったら何度でも使えるもの」です。ゲームのお金とかじゃなくて、電子書籍とかです。「購入すると広告が表示されなくなるアプリ」とかだったらアプリ内に機能解除を入れておいて購入の有無だけをAppleのサーバに問い合わせればよいのですが、電子書籍ストアのようなアプリの場合はそうもいかないので、プロダクト情報やデータをサーバに置いておき、購入した場合はデータをダウンロードできるような仕組みにしておきます。図にするとこんな感じ。
基本的にはiPhoneとAppleのやりとり、iPhoneとサーバのやりとり、サーバとAppleのやりとりの三種類があります。
で、「このサーバ部分だけ作って」というお仕事を何度かやったので、需要があるのかと思い、実装してみました。無料です。
使い方
使い方は以下の手順です。
- WordPressをサーバにインストールする
- Literally WordPressの設定画面でiOSプロダクトを有効にする
- iOSプロダクトという画面ができるので、データを入力する。この際、プロダクトIDはiTunes Connectから登録したものでないと駄目です。
- 管理画面にXML-RPCのマニュアルがあるのでその通りにアプリを実装する。ライブラリはこれ使えとかは書いてあります。
この機能でできること
- ユーザーのログイン判別
- プロダクトリストの取得
- ファイルリストの取得
- ファイルのダウンロード
他にも色々ありますので、マニュアルを見てください。
この機能でできないこと
- 会員の登録。ここら辺の機能はExtended APIというプラグインが持っています。
- 会員機能を使わないダウンロード。公開してから思ったのは、WordPressの会員機能とiOSアプリを連携させようというチャレンジャーよりも、とりあえずアプリ内購入できたらいいやという人の方が多いのではないかとということです。暇な時実装しておきます。
その他、今後ぼくが必要だなーと思った機能は適宜実装していきます。リクエストがありましたら、なんでもいいのでご報告ください。
ほんとうはモックアップアプリを作成して自慢しようと思ったのですが、Objective-Cが得意じゃないので挫折しました。タブビュー作って、テーブルビュー作って、シングルトンのXML-RPCクライアント作って、StoreKitをデリゲートしてとかはちょっとめんどくさかったです。
[429] [429] Client error: `POST https://webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response: {"__type":"com.amazon.paapi5#TooManyRequestsException","Errors":[{"Code":"TooManyRequests","Message":"The request was de (truncated...)