カスタムエンタイトルメントサーバーの統合

必要条件

アプリでカスタムエンタイトルメントサーバーを使用するためには、以下が必要です:

用語

エンタイトルメントを使用する前に知っておく必要のある専門用語:

構成

まず始めに、Twixl Publisher builderアプリで必要な構築設定がされているか確かめます。そして、Twixl Distribution Platformでも設定されているか確認します。詳しくはエンタイトルメントについての記事を参照してください

Entitlements Server API

サンプルの実装

以下のサーバー側のプログラミング言語でEntitlements Server SDKの実装サンプルをダウンロードできます:

エンタイトルメントサーバーのURL

エンタイトルメントサーバーのサーバー側の実装により、2つの異なる方法でURLが構築されます。"App Store Kiosk - Entitlements"ではビルド設定で構築できます。

最初のスタイルは"do"と呼ばれるクエリストリングパラメータでアクションを渡します。ビルド設定で以下のURLスタイルを選択すると設定できます。

http://?do=signin_form&app_id=test

この操作で以下のようなURLを生成します:
http://?do=¶m=value

URL自体の一部よりアクションがよい場合、ビルド設定で以下のURLスタイルを選ぶことができます:
http:///signin_form?app_id=test

この操作で以下のようなURLを生成します。
http:///?param=value

signin_form

HTTP method
POST

POST Parameters
None

Description
このAPIコールはサインインページを表示します。このページを使用して、例えばユーザーに印刷物の購読者証明を要求したり、地域リストから一つの地域を選択可能にします。

サインインアクションを誘導するリンクを使用する際は、以下のようなリンクを記述することができます:
<a href="?do=signin®ion=uk">Select UK</a>

フォームを利用する時は、アカウントに以下の項目が必要です:

フォーム用のHTMLコードの例:
<form method="GET">
<input type="hidden" name="do" value="signin" />
<input type="text" name="email" />
<input type="password" name="password" />
</form>

ユーザーがこのリンクをクリックまたはフォームを送信する際、アプリケーションはURLを途中で受け取り、クエリストリングを分析します。それから以下のパラメータをキーと値の辞書に追加します:

signin

HTTP method
POST

POST Parameters

Description
これはユーザーに権限があるかどうかをチェックするコールです。ユーザーに権限がある場合、いわゆる"entitlement token"を生成します。これはユーザーを識別するためのユニークIDで、Twixl Publisherがすべての他のエンタイトルメントリクエストでユーザーを識別するために使用します。
このsigninコールは常にJSONデータへ返されるべきです。結果により予測できる2つの結果があります。

ユーザーが権限を与えられた場合、以下のJSONストラクチャが返されます:
{"token": "the entitlement token"}

権限付与に失敗した場合、以下のJSONストラクチャが返されます:
{"error": "ユーザーになぜ権限が与えられないか説明するメッセージ"

signin_succeeded

HTTP method
POST

POST Parameters
token: signinアクションで返されるトークン。

Description
これはサインインが有効なトークンを返した(ユーザーに権限が与えられた)時に表示されます。クエリストリングパラメータとして受け取ったトークンに基づいて詳細情報のあるHTMLページを表示することもできます。

ユーザーにポップアップウィンドウを閉じるリンクを提供したい場合、以下のURLを使用する必要があります:
<a href="tp-close://self">Close Me</a>

サインインが成功した時に自動でポップアップを閉じたい場合は、tp-close URLにHTTPリダイレクトを実行することもできます:
header('Location: tp-close://self')

signin_error

HTTP method
POST

POST Parameters

Description
このアクションはサインインアクションがエラーメッセージを返す時に実行されます。例えばユーザー不明または権限なしを意味する際に利用できます。

実際のエラーメッセージはクエリストリングパラメータで受け取ることができます。

entitlements

HTTP method
POST

POST Parameters

Description
このアクションはアプリケーションがドキュメントリストを表示したい時またはユーザーがドキュメントを購入しようとする時に毎回呼びだされます。

このPOSTリクエストは表示しようとしているアプリケーションのproduct identifiersリストを含むJSONストリングの"product_identifiers"というパラメータを含みます。これらを本当のリストに変換するには、JSONストリングを解析する必要があります。PHPでjson_decode機能を使用して解析できます:
$product_indentifiers = json_decode($_POST['product_indentifiers']);

このアクションはユーザーに権限を付与した(トークンを与えた)製品リストとユーザーに権限がない製品を扱うのに必要なアプリは何かを含むJSONディクショナリーを返します: { "entitled_products": [
"be.hebbes.issues.free",
"be.hebbes.issues.westvlaanderen"
],
"mode": "hide_unentitled"
}

"entitled_products"キーはユーザーが権限があるproduct identifiersリストを含みます。

モードは以下の2つのオプションから一つになります: