Flutter SDKでサブスクリプションステータスを確認する
Adaptyを使えば、サブスクリプションのステータス管理が簡単になります。コードにプロダクトIDを手動で埋め込む必要はありません。アクティブなアクセスレベルを確認するだけで、ユーザーのサブスクリプション状態を手軽に把握できます。
サブスクリプションステータスを確認する前に(クリックして展開)
- iOSの場合、App Store Server Notificationsを設定してください
- Androidの場合、リアルタイム デベロッパー通知(RTDN)を設定してください
アクセスレベルとAdaptyProfileオブジェクト
アクセスレベルはAdaptyProfileオブジェクトのプロパティです。アプリ起動時(例えばユーザーを識別するタイミングなど)にプロファイルを取得し、変更があるたびに更新することをお勧めします。こうすることで、プロファイルオブジェクトを繰り返しリクエストすることなく利用できます。 プロファイルの更新通知を受け取るには、以下のプロファイルの更新(アクセスレベルを含む)をリッスンするセクションで説明されているように、プロファイルの変更をリッスンしてください。
Adapty SDK がモバイルアプリにどのように統合されているか、実際の例を見てみませんか?ペイウォールの表示、購入処理、その他の基本機能を含む完全なセットアップを実演しているサンプルアプリをご覧ください。
サーバーからアクセスレベルを取得する
サーバーからアクセスレベルを取得するには、.getProfile() メソッドを使用してください:
try {
final profile = await Adapty().getProfile();
// check the access
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
レスポンスのパラメーター:
| パラメーター | 説明 |
|---|---|
| Profile | AdaptyProfile オブジェクト。通常、ユーザーがアプリのプレミアムアクセスを持っているかどうかを判断するには、プロファイルのアクセスレベルのステータスのみを確認すれば十分です。
|
.getProfile() メソッドを使用すると、アクセスレベルのステータスを取得できるユーザープロファイルを取得できます。アプリごとに複数のアクセスレベルを設定することも可能です。例えば、ニュースアプリで異なるトピックのサブスクリプションを独立して販売する場合、“sports” や “science” といったアクセスレベルを作成できます。ただし、ほとんどの場合はアクセスレベルが1つあれば十分なので、デフォルトの “premium” アクセスレベルをそのまま使えます。 |
デフォルトの “premium” アクセスレベルを確認する例を以下に示します:
try {
final profile = await Adapty().getProfile();
if (profile?.accessLevels['premium']?.isActive ?? false) {
// grant access to premium features
}
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
サブスクリプションステータス更新のリッスン
ユーザーのサブスクリプションが変更されるたびに、Adaptyはイベントを発火します。
Adaptyからメッセージを受け取るには、追加の設定が必要です。
Adapty().didUpdateProfileStream.listen((profile) {
// handle any changes to subscription state
});
Adaptyはアプリ起動時にもイベントを発火します。この場合、キャッシュされたサブスクリプションステータスが渡されます。
サブスクリプションステータスのキャッシュ
Adapty SDK に実装されたキャッシュは、プロファイルのサブスクリプションステータスを保存します。つまり、サーバーが利用できない場合でも、キャッシュされたデータにアクセスしてプロファイルのサブスクリプションステータスに関する情報を取得できます。 ただし、キャッシュへの直接データリクエストはできません。SDKは1分ごとに定期的にサーバーへ問い合わせを行い、プロファイルに関する更新や変更がないかを確認します。新しいトランザクションやその他の更新など変更があった場合は、キャッシュデータに反映され、サーバーとの同期が維持されます。