アプリでカスタムエンタイトルメントサーバーを使用するためには、以下が必要です:
エンタイトルメントを使用する前に知っておく必要のある専門用語:
まず始めに、Twixl Publisher builderアプリで必要な構築設定がされているか確かめます。そして、Twixl Distribution Platformでも設定されているか確認します。詳しくはエンタイトルメントについての記事を参照してください。
以下のサーバー側のプログラミング言語でEntitlements Server SDKの実装サンプルをダウンロードできます:
エンタイトルメントサーバーのサーバー側の実装により、2つの異なる方法でURLが構築されます。"App Store Kiosk - Entitlements"ではビルド設定で構築できます。
最初のスタイルは"do"と呼ばれるクエリストリングパラメータでアクションを渡します。ビルド設定で以下のURLスタイルを選択すると設定できます。
http://
この操作で以下のようなURLを生成します:
http://
URL自体の一部よりアクションがよい場合、ビルド設定で以下のURLスタイルを選ぶことができます:
http://
この操作で以下のようなURLを生成します。
http://
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を途中で受け取り、クエリストリングを分析します。それから以下のパラメータをキーと値の辞書に追加します:
HTTP method
POST
POST Parameters
ユーザーが権限を与えられた場合、以下のJSONストラクチャが返されます:
{"token": "the entitlement token"}
権限付与に失敗した場合、以下のJSONストラクチャが返されます:
{"error": "ユーザーになぜ権限が与えられないか説明するメッセージ"
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')
HTTP method
POST
POST Parameters
Description
このアクションはサインインアクションがエラーメッセージを返す時に実行されます。例えばユーザー不明または権限なしを意味する際に利用できます。
実際のエラーメッセージはクエリストリングパラメータで受け取ることができます。
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つのオプションから一つになります: