

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーション開発者向けの AppFabric for productivity (プレビュー) の使用を開始する
<a name="getting-started-appdeveloper-productivity"></a>


|  | 
| --- |
|  AWS AppFabric for productivity 機能はプレビュー版であり、変更される可能性があります。 | 

このセクションでは、アプリデベロッパーが AWS AppFabric for productivity (プレビュー) をアプリケーションに統合するのに役立ちます。 AWS AppFabric for productivity を使用すると、デベロッパーは、複数のアプリケーション間で E メール、カレンダーイベント、タスク、メッセージなどから AI を活用したインサイトやアクションを生成することで、ユーザーにとってよりリッチなアプリケーションエクスペリエンスを構築できます。サポートされているアプリケーションのリストは、「[AWS AppFabric Supported Applications](https://aws.amazon.com/appfabric/supported-applications/)」を参照してください。

AppFabric for Productivity は、アプリケーションデベロッパーに、安全で統制のとれた環境で構築や実験へのアクセスを提供します。AppFabric for productivity の使用を開始するときは、まず AppClient を作成し、テストユーザーを 1 人登録します。この方法は、ユーザーが、アプリケーションと AppFabric 間の認証およびコミュニケーションの流れを理解しテストすることができるようにすることを目的としています。1 人のユーザーでテストしたら、アプリケーションを AppFabric に送信して検証を行い、その後、アクセスを他のユーザーに広げます (「[ステップ 5. AppFabric にアプリケーションの検証をリクエストする](#request_verification)」を参照)。アプリケーションデベロッパーとエンドユーザーを保護し彼らのデータを保護するため、AppFabric では、アプリケーションの情報を検証してから採用範囲を拡大できるようにしています。そうすることで、責任ある方法でユーザーによる利用を広げるための準備をします。

**Topics**
+ [前提条件](#getting-started-prerequisites)
+ [ステップ 1. AppFabric for productivity の AppClient を作成する](#create_appclient)
+ [ステップ 2. アプリケーションを認証し認可する](#authorize_data_access)
+ [ステップ 3. AppFabric ユーザーポータル URL をアプリケーションに追加する](#end_user_portal)
+ [ステップ 4. AppFabric を使用してクロスアプリケーションのインサイトとアクションを表示する](#surface_insights_actions)
+ [ステップ 5. AppFabric にアプリケーションの検証をリクエストする](#request_verification)
+ [AppFabric for productivity AppClients の管理](manage-appclients.md)
+ [AppFabric for productivity の AppClients AppClients のトラブルシューティング](ahead-app-dev-errors.md)

## 前提条件
<a name="getting-started-prerequisites"></a>

開始する前に、 を作成する必要があります AWS アカウント。詳細については、「[にサインアップする AWS アカウント](prerequisites.md#sign-up-for-aws)」を参照してください。また、以下の `"appfabric:CreateAppClient"` IAM ポリシーにアクセスできるユーザーを 1 人以上作成する必要があります。これにより、ユーザーはアプリケーションを AppFabric に登録することができます。AppFabric for productivity の機能へのアクセス権限を付与する方法の詳細については、「[AppFabric for productivity IAM ポリシーの例](security_iam_id-based-policy-examples.md#appfabric-for-productivity-policy-examples)」を参照してください。管理ユーザーを作成しておくことは何かと便利ですが、初期設定ではその作成は必須ではありません。詳細については、「[管理アクセスを持つユーザーを作成する](prerequisites.md#create-an-admin)」を参照してください。

AppFabric for productivity は、プレビュー中は米国東部 (バージニア北部) のみで利用できます。以下のステップを開始する前に、ご自身の現在地がこの地域であることを確認します。

## ステップ 1. AppFabric for productivity の AppClient を作成する
<a name="create_appclient"></a>

AppFabric for productivity インサイトをアプリケーション内で表示できるようにするには、先に AppFabric の AppClient を作成しておく必要があります。AppClient とは、AppFabric for productivity のゲートウェイであり、アプリケーションと AppFabric 間の安全なコミュニケーションを可能にする、セキュアな OAuth アプリケーションクライアントとして機能します。AppClient を作成すると AppClient ID が付与されます。これは、AppFabric が、アプリケーションおよびユーザーの AWS アカウントと連携していることを認識できるようにするための、不可欠な一意の識別子です。

AppFabric for Productivity は、アプリケーションデベロッパーに、安全で統制のとれた環境で構築や実験へのアクセスを提供します。AppFabric for productivity の使用を開始するときは、まず AppClient を作成し、テストユーザーを 1 人登録します。この方法は、ユーザーが、アプリケーションと AppFabric 間の認証およびコミュニケーションの流れを理解しテストすることができるようにすることを目的としています。1 人のユーザーでテストしたら、アプリケーションを AppFabric に送信して検証を行い、その後、アクセスを他のユーザーに広げます (「[ステップ 5. AppFabric にアプリケーションの検証をリクエストする](#request_verification)」を参照)。アプリケーションデベロッパーとエンドユーザーを保護し彼らのデータを保護するため、AppFabric では、アプリケーションの情報を検証してから採用範囲を拡大できるようにしています。そうすることで、責任ある方法でユーザーによる利用を広げるための準備をします。

AppClient を作成するには、 AWS AppFabric `CreateAppClient` API オペレーションを使用します。AppClient を後で更新する必要がある場合は、`UpdateAppClient` API オペレーションを使用すれば redirectUrls を変更するだけで済みます。appName や説明などお使いの AppClient に関連付けられているその他のパラメータを変更する必要がある場合は、その AppClient を削除し、新たに作成する必要があります。詳細については、「[CreateAppClient](API_CreateAppClient.md)」を参照してください。

API を使用して、Python、Node.js、Java、C\#、Go、Rust などの複数のプログラミング言語`CreateAppClient`を使用して、 AWS サービスにアプリケーションを登録できます。詳細については、「IAM ユーザーガイド」の「[リクエスト署名の例](https://docs.aws.amazon.com/IAM/latest/UserGuide/signature-v4-examples.html)」を参照してください。この API オペレーションを実行するには、アカウント署名バージョン 4 の認証情報を使用する必要があります。署名バージョン 4 の詳細については、*IAM ユーザーガイド*[の AWS API リクエストの署名](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html)を参照してください。

**リクエストフィールド**
+ `appName` - AppFabric ユーザーポータルの同意ページでユーザーに表示されるアプリケーションの名前です。同意ページでは、エンドユーザーは、アプリケーション内に AppFabric インサイトを表示する許可を求められます。同意ページの詳細については、「[ステップ 2. インサイトを表示することをアプリに許可する](getting-started-users-productivity.md#provide-consent)」を参照してください 。
+ `description` - アプリケーションの説明です。
+ `redirectUrls` - 承認後にエンドユーザーがリダイレクトされる URI です。redirectUrls は 5 個まで追加できます。例えば、`https://localhost:8080`。
+ `starterUserEmails` - アプリケーションが検証されるまでの間、インサイトを受け取るためのアクセスが許可されるユーザーの E メールアドレスです。使用できるアドレスは 1 つのみです。例: `anyuser@example.com`
+ `customerManagedKeyIdentifier` (オプション) - データの暗号化に使用されるカスタマーマネージドキー (KMS が生成) の ARN です。指定しない場合、 AWS AppFabric マネージドキーが使用されます。 AWS 所有のキー およびカスタマーマネージドキーの詳細については、「AWS Key Management Service 開発者ガイド」の「[カスタマーキーと AWS キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt)」を参照してください。

**レスポンスフィールド**
+ `appClientArn` - AppClient ID を含む Amazon リソースネーム (ARN) です。例えば、AppClient ID は `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111` です。
+ `verificationStatus` - AppClient の検証ステータスです。
  + `pending_verification` - AppClient の検証が、AppFabric でまだ進行中です。AppClient の検証が終わるまでは、この AppClient を使用できるのは (`starterUserEmails` で指定された) 1 人のユーザーのみとなります。このユーザーは、AppFabric ユーザーポータル ([ステップ 3. AppFabric ユーザーポータル URL をアプリケーションに追加する](#end_user_portal) で紹介) で、アプリケーションが検証されていないことを示す通知を閲覧できます。
  + `verified` - AppFabric による検証プロセスが正常に完了し、AppClient は検証済みです。
  + `rejected` - AppClient の検証プロセスが AppFabric によって拒否されました。検証プロセスが再開され正常に完了するまでは、他のユーザーが AppClient を使用することはできません。

```
curl --request POST \
  --header "Content-Type: application/json" \
  --header "X-Amz-Content-Sha256: <sha256_payload>" \
  --header "X-Amz-Security-Token: {{<security_token>}}" \
  --header "X-Amz-Date: 20230922T172215Z" \
  --header "Authorization: AWS4-HMAC-SHA256 ..." \
  --url https://appfabric.{{<region>}}.amazonaws.com/appclients/ \
  --data '{
    "appName": "Test App",
    "description": "This is a test app",
    "redirectUrls": ["https://localhost:8080"],
    "starterUserEmails": ["anyuser@example.com"],
    "customerManagedKeyIdentifier": "arn:aws:kms:{{<region>}}:{{<account>}}:key/{{<key>}}"
}'
```

アクションが成功すると、サービスは HTTP 200 レスポンスを返します。

```
{
    "appClientConfigSummary": {
        "appClientArn": "arn:aws:appfabric:{{<region>}}:{{<account>}}:appclient/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
        "verificationStatus": "pending_verification"
    }
}
```

## ステップ 2. アプリケーションを認証し認可する
<a name="authorize_data_access"></a>

OAuth 2.0 の認可フローを確立して、アプリケーションが AppFabric のインサイトを安全に統合できるようにします。まず認可コードを作成します。このコードがアプリケーションの ID を検証します。詳細については、「[承認](API_Authorize.md)」を参照してください。次に、この認可コードをアクセストークンと交換します。これにより、アプリケーション内の AppFabric インサイトを取得して表示するアクセス権限がアプリケーションに付与されます。詳細については、「[トークン](API_Token.md)」を参照してください。

アプリケーションを承認するアクセス権限を付与する方法の詳細については、「[アプリケーションを承認するためのアクセスを許可する](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-productivity-token)」を参照してください。

1. 認可コードを作成するには、 AWS AppFabric `oauth2/authorize` API オペレーションを使用します。

   **リクエストフィールド**
   + `app_client_id`(必須) - [ステップ 1. AppClient の作成 で作成した AWS アカウント の AppClient ID です。AppClient を作成する](#create_appclient)。例えば、`a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`。
   + `redirect_uri` (必須) - [ステップ 1 で使用した認可後にエンドユーザーを にリダイレクトする URI。AppClient を作成する](#create_appclient)。例えば、`https://localhost:8080`。
   + `state` (必須) - リクエストとコールバック間の状態を維持するための一意の値です。例えば、`a8904edc-890c-1005-1996-29a757272a44`。

   ```
   GET https://productivity.appfabric.{{<region>}}.amazonaws.com/oauth2/authorize?app_client_id=a1b2c3d4-5678-90ab-cdef-EXAMPLE11111\
   redirect_uri=https://localhost:8080&state=a8904edc-890c-1005-1996-29a757272a44
   ```

1. 認証後、ユーザーは指定した URI にリダイレクトされ、認可コードがクエリパラメータとして返されます。例えば、`code=mM0NyJ9.MEUCIHQQgV3ChXGs2LRwxLtpsgya3ybfPYXfX-sxTAdRF-gDAiEAxX7BYKlD9krG3J2VtprOjVXZ0FSUX9whdekqJ-oampc` です。

   ```
   https://localhost:8080/?code=mM0NyJ9.MEUCIHQQgV3ChXGs2LRwxLtpsgya3ybfPYXfX-sxTAdRF-gDAiEAxX7BYKlD9krG3J2VtprOjVXZ0FSUX9whdekqJ-oampc&state=a8904edc-890c-1005-1996-29a757272a44
   ```

1. AppFabric `oauth2/token` API オペレーションを使用して、この認可コードをアクセストークンと交換します。

   このトークンは API リクエストに使用され、AppClient の検証が完了するまでは `starterUserEmails` に対して有効です。AppClient の検証が完了した後は、このトークンはどのユーザーにでも使用できます。この API オペレーションを実行するには、アカウント署名バージョン 4 の認証情報を使用する必要があります。署名バージョン 4 の詳細については、*IAM ユーザーガイド*[の AWS API リクエストの署名](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html)を参照してください。

**リクエストフィールド**
   + `code` (必須) - 最後のステップで認証した後に受け取った認可コード。例えば、`mM0NyJ9.MEUCIHQQgV3ChXGs2LRwxLtpsgya3ybfPYXfX-sxTAdRF-gDAiEAxX7BYKlD9krG3J2VtprOjVXZ0FSUX9whdekqJ-oampc`。
   + `app_client_id`(必須) - [ステップ 1. AppClient の作成 で作成した AWS アカウント の AppClient ID です。AppClient を作成する](#create_appclient)。例えば、`a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`。
   + `grant_type` (必須) - 値は `authorization_code` でなければなりません。
   + `redirect_uri` (必須) - [ステップ 1 で使用した認可後にユーザーを にリダイレクトする URI。AppClient を作成する](#create_appclient)。こちらは、認可コードの作成に使用したものと同じリダイレクト URI である必要があります。例えば、`https://localhost:8080`。

   **レスポンスフィールド**
   + `expires_in` - トークンの有効期限が切れるまでの残り時間です。デフォルトの有効期限は 12 時間です。
   + `refresh_token` - 最初の /token リクエストで受け取った更新トークンです。
   + `token` - 最初の /token リクエストで受け取ったトークンです。
   + `token_type` - この値は `Bearer` になります。
   + `appfabric_user_id` - AppFabric ユーザー ID です。この値は、リクエストが `authorization_code` グラントタイプを使用している場合のみ返されます。

   ```
   curl --location \
   "https://appfabric.{{<region>}}.amazonaws.com/oauth2/token" \
   --header "Content-Type: application/json" \
   --header "X-Amz-Content-Sha256: <sha256_payload>" \
   --header "X-Amz-Security-Token: {{<security_token>}}" \
   --header "X-Amz-Date: 20230922T172215Z" \
   --header "Authorization: AWS4-HMAC-SHA256 ..." \
   --data "{
       \"code\": \"mM0NyJ9.MEUCIHQQgV3ChXGs2LRwxLtpsgya3ybfPYXfX-sxTAdRF-gDAiEAxX7BYKlD9krG3J2VtprOjVXZ0FSUX9whdekqJ-oampc",
       \"app_client_id\": \"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111\",
       \"grant_type\": \"authorization_code\",
       \"redirect_uri\": \"https://localhost:8080\"
   }"
   ```

   アクションが成功すると、サービスは HTTP 200 レスポンスを返します。

   ```
   {
       "expires_in": 43200,
       "refresh_token": "apkaeibaerjr2example",
       "token": "apkaeibaerjr2example",
       "token_type": "Bearer", 
       "appfabric_user_id" : "{{<userId>}}"
   }
   ```

## ステップ 3. AppFabric ユーザーポータル URL をアプリケーションに追加する
<a name="end_user_portal"></a>

エンドユーザーは、インサイトの生成に使われる、自分のアプリケーションから得られるデータへのアクセスを、AppFabric に許可する必要があります。AppFabric は、専用のユーザーポータル (ポップアップ画面) を構築してそこでエンドユーザーにアプリケーションを認可させることで、アプリケーションデベロッパーがこのプロセスを自分で管理する煩雑さを解消します。AppFabric for productivity を有効にする準備が整うとユーザーはこのユーザーポータルに誘導されます。ユーザーはそこで、インサイトやクロスアプリケーションアクションの生成に使用されるアプリケーションを、接続したり管理したりできます。ログインすると、ユーザーはアプリケーションを AppFabric for productivity に接続できるようになり、自分のアプリケーションでインサイトやアクションを確認できます。アプリケーションを AppFabric for productivity と連携させるには、特定の AppFabric URL をアプリケーションに追加する必要があります。これは、ユーザーがアプリケーションから AppFabric ユーザーポータルに直接アクセスできるようにするために欠かせないステップです。

1. アプリケーションの設定に進み、リダイレクト URL を追加するセクションを探します。

1. 該当するセクションが見つかったら、以下の AppFabric URL をリダイレクト URL としてアプリケーションに追加します。

   ```
   https://userportal.appfabric.{{<region>}}.amazonaws.com/eup_login
   ```

URL を追加すると、ユーザーを AppFabric ユーザーポータルに誘導するようにアプリケーションで設定されます。ここで、ユーザーはログインし、AppFabric for productivity のインサイトの生成に使用されるアプリケーションを接続して管理することができます。

## ステップ 4. AppFabric を使用してクロスアプリケーションのインサイトとアクションを表示する
<a name="surface_insights_actions"></a>

ユーザーがアプリケーションを接続すると、ユーザーのインサイトを活用でき、アプリケーションとコンテキストを切り替える手間が省けて生産性を高めることができます。AppFabric は、ユーザーが持つアクセス権限に基づいてインサイトを生成します。AppFabric は、AppFabric AWS アカウント が所有する にユーザーデータを保存します。AppFabric によるデータの使用方法についての詳細は、「[AppFabric でのデータ処理](productivity-data-processing.md)」を参照してください。

ユーザーレベルのインサイトとアクションをアプリケーション内で生成して表示するときは、AI を活用した以下の API を使用できます。
+ `ListActionableInsights` — 詳細については、以下の「[実行可能なインサイト](#productivity-actionable-insights)」のセクションを参照してください。
+ `ListMeetingInsights` — 詳細については、本ガイドで後述する「[会議の準備](#productivity-meeting-insights)」のセクションを参照してください。

### 実行可能なインサイト (`ListActionableInsights`)
<a name="productivity-actionable-insights"></a>

`ListActionableInsights` は、アプリケーション (E メール、カレンダー、メッセージ、タスクなど) を横断するアクティビティに基づいて実行可能なインサイトを表示する、日々の業務を効率よく管理するのに役立つ API です。表示されるインサイトには、インサイトの生成に使用されたアーティファクトへの埋め込みリンクも含まれているため、ユーザーはインサイトの生成に使用されたデータをすばやく確認できます。さらにこの API は、インサイトに基づく推奨されるアクションを返すことができるため、ユーザーは自分のアプリケーションからクロスアプリケーションアクションを実行することができます。具体的には、この API は Asana、Google Workspace、Microsoft 365、Smartsheet などのプラットフォームと連携し、ユーザーがメール送信、カレンダーイベントの作成、タスクの作成などを行うことを可能にします。大規模言語モデル (LLM) では、推奨されるアクション (メール本文やタスク名など) に自動的に詳細を追加できます。ユーザーはこれを実行前にカスタマイズできるため、意思決定を簡略化し、生産性を高めることができます。エンドユーザーがアプリケーションを承認する場合と同様に、AppFabric では、ユーザーは同じ専用ポータルを使用してクロスアプリケーションアクションを表示、編集、実行できます。アクションを実行する場合、AppFabric は、ユーザーを AppFabric ユーザーポータルにリダイレクトして、アクションの詳細を確認してからこれを実行できるようにすることを ISV に要求しています。AppFabric で生成されるアクションのすべてに、固有の URL があります。この URL は `ListActionableInsights` API レスポンスのレスポンスで使用できます。

以下は、サポートされているクロスアプリケーションアクションと、どのアプリケーションでサポートされているかをまとめたものです。
+ E メールの送信 (Google Workspace、Microsoft 365)
+ カレンダーイベントの作成 (Google Workspace、Microsoft 365)
+ タスクの作成 (Asana、Smartsheet)

**リクエストフィールド**
+ `nextToken` (オプション) - 次回のインサイトのセットを取得するためのページネーショントークンです。
+ `includeActionExecutionStatus` - アクションの実行ステータスのリストを受け入れるフィルターです。これらのアクションは渡されたステータス値に基づいてフィルタリングされます。使用できる値: `NOT_EXECUTED` \| `EXECUTED`

**リクエストヘッダー**
+ 承認ヘッダーは `Bearer Token ` 値とともに渡す必要があります。

**レスポンスフィールド**
+ `insightId` - 生成されたインサイトの一意の ID です。
+ `insightContent` - インサイトの概要と、インサイトの生成に使用されたアーティファクトへの埋め込みリンクを返します。注: こちらは、埋め込みリンク (<a>タグ) を含む HTML コンテンツです。
+ `insightTitle` - 生成されたインサイトの件名です。
+ `createdAt` - インサイトが生成された日時です。
+ `actions` - 生成されたインサイトで推奨されるアクションのリストです。アクションオブジェクト:
  + `actionId` - 生成されたアクションの一意の ID です。
  + `actionIconUrl` - アクションの実行が推奨されているアプリケーションのアイコン URL です。
  + `actionTitle` - 生成されたアクションの件名です。
  + `actionUrl` - エンドユーザーが AppFabric のユーザーポータルでアクションを表示して実行するための一意の URL です。注: アクションを実行する場合、ISV のアプリケーションはこの URL を使用してユーザーを AppFabric ユーザーポータル (ポップアップ画面) にリダイレクトします。
  + `actionExecutionStatus` - アクションのステータスを示す列挙型です。指定できる値は `EXECUTED` \| `NOT_EXECUTED` です。
+ `nextToken` (オプション) - 次回のインサイトのセットを取得するためのページネーショントークンです。こちらはオプションのフィールドで、null が返された場合は、ロードするインサイトがそれ以上ないことを意味します。

詳細については、「[ActionableInsights](API_ActionableInsights.md)」を参照してください。

```
curl -v --location \
  "https://productivity.appfabric.{{<region>}}.amazonaws.com"\
"/actionableInsights" \
  --header "Authorization: Bearer {{<token>}}"
```

アクションが成功すると、サービスは HTTP 200 レスポンスを返します。

```
200 OK

{
    "insights": [
        {
            "insightId": "7tff3412-33b4-479a-8812-30EXAMPLE1111",
            "insightContent": "You received an email from James
            regarding providing feedback
            for upcoming performance reviews.",
            "insightTitle": "New feedback request",
            "createdAt": 2022-10-08T00:46:31.378493Z,
            "actions": [
                {
                    "actionId": "5b4f3412-33b4-479a-8812-3EXAMPLE2222",
                    "actionIconUrl": "https://d3gdwnnn63ow7w.cloudfront.net/eup/123.svg",
                    "actionTitle": "Send feedback request email",
                    "actionUrl": "https://userportal.appfabric.us-east-1.amazonaws.com/action/action_id_1"
                    "actionExecutionStatus": "NOT_EXECUTED"
                }
            ]
        },
        {
            "insightId": "2dff3412-33b4-479a-8812-30bEXAMPLE3333",
            "insightContent":"Steve sent you an email asking for details on project. Consider replying to the email.",
            "insightTitle": "New team launch discussion",
            "createdAt": 2022-10-08T00:46:31.378493Z,
            "actions": [
                {
                    "actionId": "74251e31-5962-49d2-9ca3-1EXAMPLE1111",
                    "actionIconUrl": "https://d3gdwnnn63ow7w.cloudfront.net/eup/123.svg",
                    "actionTitle": "Reply to team launch email",
                    "actionUrl": "https://userportal.appfabric.us-east-1.amazonaws.com/action/action_id_2"
                    "actionExecutionStatus": "NOT_EXECUTED"
                }
            ]
        }
    ],
    "nextToken": null
}
```

### 会議の準備 (`ListMeetingInsights`)
<a name="productivity-meeting-insights"></a>

`ListMeetingInsights` は、会議の内容を要約したり、E メールやメッセージその他のアプリケーションを横断して関連性の高いアーティファクトを表示したりすることで、今後の会議に向けて準備するのに役立つ API です。ユーザーはすぐに会議に向けた準備ができ、コンテンツを見つけるためにアプリケーション間を切り替える手間が省けます。

**リクエストフィールド**
+ `nextToken` (オプション) - 次回のインサイトのセットを取得するためのページネーショントークンです。

**リクエストヘッダー**
+ 承認ヘッダーは `Bearer Token` 値とともに渡す必要があります。

**レスポンスフィールド**
+ `insightId` - 生成されたインサイトの一意の ID です。
+ `insightContent` - インサイトの説明で、詳細は文字列の形式で強調表示されます。例えば、なぜこのインサイトが重要なのか、など。
+ `insightTitle` - 生成されたインサイトの件名です。
+ `createdAt` - インサイトが生成された日時です。
+ `calendarEvent` - ユーザーが注目すべき重要なカレンダーイベントまたは会議です。カレンダーイベントオブジェクト: 
  + `startTime` - イベントの開始時刻です。
  + `endTime` - イベントの終了時刻です。
  + `eventUrl` - ISV アプリケーションのカレンダーイベントの URL です。
+ `resources` - インサイトの生成に関連する他のリソースを含むリストです。リソースオブジェクト:
  + `appName` - リソースが属するアプリケーションの名前です。
  + `resourceTitle` - リソースの件名です。
  + `resourceType` - リソースのタイプです。指定できる値は `EMAIL` \| `EVENT` \| `MESSAGE` \| `TASK` です。
  + `resourceUrl` - アプリケーション内のリソース URL です。
  + `appIconUrl` - リソースが属するアプリケーションの画像 URL です。
+ `nextToken` (オプション) - 次回のインサイトのセットを取得するためのページネーショントークンです。こちらはオプションのフィールドで、null が返された場合は、ロードするインサイトがそれ以上ないことを意味します。

詳細については、「[MeetingInsights](API_MeetingInsights.md)」を参照してください。

```
curl --location \
  "https://productivity.appfabric.{{<region>}}.amazonaws.com"\
"/meetingContexts" \
  --header "Authorization: Bearer {{<token>}}"
```

アクションが成功すると、HTTP 201 レスポンスが返されます。

```
200 OK

{
    "insights": [
        {
            "insightId": "74251e31-5962-49d2-9ca3-15EXAMPLE4444"
            "insightContent": "Project demo meeting coming up soon. Prepare accordingly",
            "insightTitle": "Demo meeting next week",
            "createdAt": 2022-10-08T00:46:31.378493Z,
            "calendarEvent": {
                    "startTime": {
                        "timeInUTC": 2023-10-08T10:00:00.000000Z,
                        "timeZone": "UTC"
                     },
                    "endTime": {
                        "timeInUTC": 2023-10-08T11:00:00.000000Z,
                        "timeZone": "UTC"
                     },
                    "eventUrl": "http://someapp.com/events/1234",
            }
            "resources": [
                {
                    "appName": "SOME_EMAIL_APP",
                    "resourceTitle": "Email for project demo",
                    "resourceType": "EMAIL",
                    "resourceUrl": "http://someapp.com/emails/1234",
                    "appIconUrl":"https://d3gdwnnn63ow7w.cloudfront.net/eup/123.svg"
                }
            ]
        },
        {
            "insightId": "98751e31-5962-49d2-9ca3-15EXAMPLE5555"
            "insightContent": "Important code complete task is now due. Consider updating the status.",
            "insightTitle": "Code complete task is due",
            "createdAt": 2022-10-08T00:46:31.378493Z,
            "calendarEvent":{
                    "startTime": {
                        "timeInUTC": 2023-10-08T10:00:00.000000Z,
                        "timeZone": "UTC"
                     },
                    "endTime": {
                        "timeInUTC": 2023-10-08T11:00:00.000000Z,
                        "timeZone": "UTC"
                     },
                    "eventUrl": "http://someapp.com/events/1234",
            },
            "resources": [
                {
                    "appName": "SOME_TASK_APPLICATION",
                    "resourceTitle": "Code Complete task is due",
                    "resourceType": "TASK",
                    "resourceUrl": "http://someapp.com/task/1234",
                    "appIconUrl": "https://d3gdwnnn63ow7w.cloudfront.net/eup/123.svg"
                }
            ]
        }
    ],
    "nextToken": null
}
```

### インサイトやアクションに関するフィードバックを提供してください。
<a name="productivity-feedback-appclient"></a>

生成されたインサイトやアクションに関するフィードバックを送るときは、AppFabric `PutFeedback` API オペレーションを使用します。この機能をアプリケーションに埋め込むと、特定の InsightId または ActionId に対するフィードバック評価 (1～5、値が大きい高いほど評価が高い) を送信できます。

**リクエストフィールド**
+ `id` - フィードバックの送信対象となるオブジェクトの識別子です。InsightId か ActionId のいずれかになります。
+ `feedbackFor` - フィードバックの送信対象となるリソースタイプです。使用できる値: `ACTIONABLE_INSIGHT` \| `MEETING_INSIGHT` \| `ACTION`
+ `feedbackRating` - `1` から `5` までの評価です。値が大きいほど評価が高いことを意味します。

**レスポンスフィールド**
+ レスポンスフィールドはありません。

詳細については、「[PutFeedback](API_PutFeedback.md)」を参照してください。

```
curl --request POST \
  --url "https://productivity.appfabric.{{<region>}}.amazonaws.com"\
"/feedback" \
  --header "Authorization: Bearer {{<token>}}" \
  --header "Content-Type: application/json" \
  --data '{
    "id": "1234-5678-9012",
    "feedbackFor": "ACTIONABLE_INSIGHT"
    "feedbackRating": 3
}'
```

アクションが成功した場合、サービスは空の HTTP 本文を持つ HTTP 201 レスポンスを返します。

## ステップ 5. AppFabric にアプリケーションの検証をリクエストする
<a name="request_verification"></a>

ここに至るまでに、アプリケーションの UI を、AppFabric のクロスアプリケーションのインサイトとアクションを埋め込むように更新し、1 人のユーザーに関するインサイトを取得しました。テストに満足し、AppFabric によって機能強化したエクスペリエンスを他のユーザーにも広げたい場合は、アプリケーションを AppFabric に送信し、レビューと検証を受けます。アプリケーションデベロッパーとエンドユーザーを保護し彼らのデータを保護するため、AppFabric では、アプリケーションの情報を検証してから採用範囲を拡大できるようにしています。そうすることで、責任ある方法でユーザーによる利用を広げるための準備をします。

**検証プロセスの開始**

[appfabric-appverification@amazon.com](mailto:appfabric-appverification@amazon.com) にメールを送信し、アプリケーションの検証をリクエストして、検証プロセスを開始します。

E メールの本文には次の情報を含めます。
+  AWS アカウント ID
+ 検証を依頼するアプリケーションの名称
+ 自分の AppClient ID
+ 自分の連絡先情報

また、可能であれば、以下の情報も含めると、優先順位や影響を評価する際に役立ちます。
+ アクセスを許可するユーザー数 (推計)
+ リリース日

**注記**  
 AWS アカウント マネージャーまたは AWS パートナー開発マネージャーがいる場合は、E メールでコピーしてください。追加しておくと、検証プロセスをスピーディに進めることができます。

**検証基準**

検証プロセスを開始する前に、次の基準を満たしている必要があります。
+ AppFabric for productivity AWS アカウント を使用するには、有効な を使用する必要があります

また、以下の基準のうち 1 つ以上を満たしている必要があります。
+ 組織は、少なくとも「 Select AWS 」階層 AWS Partner Network を持つ の AWS パートナーです。詳細については、「[AWS サービスパートナーティア](https://aws.amazon.com/partners/services-tiers/)」を参照してください。
+ 所属する組織が、過去 3 年間で AppFabric サービスに 10,000 ドル以上を費やしていること。
+ アプリケーションが AWS Marketplaceに掲載されていること。詳細については、「[AWS Marketplace](https://aws.amazon.com/marketplace)」を参照してください。

**検証ステータスの更新の待機**

アプリケーションの審査が完了すると、メールで返信があり、AppClient のステータスが `pending_verification` から `verified` に変わります。アプリケーションが却下された場合は、検証プロセスを改めて行う必要があります。