---
title: ログインユーザーの情報でAPIのレスポンスを動的に変更する
description: ログインユーザーの情報を使用して、APIエンドポイントのレスポンスを動的に変更する方法を解説します。
---

ログインユーザーの情報を使用して、APIエンドポイントのレスポンスを動的に変更する方法を解説します。  
本チュートリアルでは、以下の構成で、ログインユーザーによってお知らせ一覧の表示内容を変更してみます。  

- [メンバー拡張に会社名を追加する](#メンバー拡張に会社名を追加する)
- [コンテンツ(お知らせ)にターゲットの会社を追加する](#コンテンツお知らせにターゲットの会社を追加する)
- [ログインユーザーの情報をフィルタークエリに設定するカスタム処理を追加する](#ログインユーザーの情報をフィルタークエリに設定するカスタム処理を追加する)
- [エンドポイントにフィルターリクエストの許可と前処理の設定をする](#エンドポイントにフィルターリクエストの許可と前処理の設定をする)

## メンバー拡張に会社名を追加する
[メンバー管理]->[メンバー]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/c85c7d48fa6b512e9871cfa633d48ed8.png)

[メンバー詳細設定]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/a1eb0d9c3a5f86333db3660338762064.png)

[登録されるメンバーの拡張項目を設定する]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/cd21cee900649321e64eda53f56a69e0.png)

以下のように設定し、[更新する]をクリックします。

|項目|設定|
|:--|:--|
|項目名|会社名|
|識別子|company_id|
|設定|単一選択|
||1::株式会社A<br/>2::株式会社B|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/3c7b8472641f3e13b37b4e5c5946c432.png)

[メンバー一覧](/ja/docs/management/member/)のページから、動作確認用メンバーの名前をクリックします。    
![Image from Gyazo](https://t.gyazo.com/teams/diverta/0e4c3785e0bd41e766881d7b0ae39641.png)

メンバー編集ページが表示されるのでプロフィール情報のタブで会社名をセットします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/c6a5f716c69b8335aa88d24bfbe0de46.png)

## コンテンツ(お知らせ)にターゲットの会社を追加する
[コンテンツ定義]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/00d3a62367890dbebe6a7fce4462f026.png)

コンテンツ定義一覧から[お知らせ]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/2d90475fb60a0050202007a6a9daff61.png)

コンテンツ定義編集画面が開くので、下記のように設定し、[更新する]をクリックします。  

|項目|設定|
|:--|:--|
|親項目|選択なし|
|項目名|ターゲット|
|項目設定|複数選択可|
||1::株式会社A<br/>2::株式会社B<br/>3::株式会社C|

![Image from Gyazo](https://t.gyazo.com/teams/diverta/c00c916670a4b86f4b72dc6788ac206a.jpg)

コンテンツ編集画面に追加した項目が表示されるので、任意のコンテンツの編集画面でターゲットとなる会社名にチェックを入れて更新します。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/2357beadc3fe2846a4da983bc6d1b5e4.png)

## ログインユーザーの情報をフィルタークエリに設定するカスタム処理を追加する
次にログインユーザーの情報を取得するカスタム処理を追加します。  
[カスタム処理]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/08626c9403ce2cfd33536b050e828701.png)

[追加]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/eb104fc89b1dbda55d730804ac20219a.png)

以下を設定し、[追加する]をクリックします。  

|項目|設定|
|:--|:--|
|タイトル|ログインユーザーの情報をフィルタクエリに追加|
|識別子|set_filter_request|
|処理|以下のコード|

```js
{if $smarty.session.super_flg ne 1}
{assign_member_detail var='mem' member_id=$smarty.session.member_id}
{assign var=request.filter value="ext_1 contains `$mem.company_id_key`"}
{/if}
```

![Image from Gyazo](https://t.gyazo.com/teams/diverta/89f4bf88915e7bfa9414923dc560637d.jpg)

:::tip
filterパラメータの記法詳細は[Filter検索のパラメータ](/ja/docs/reference/filter-query/)を参照してください。  
:::

## エンドポイントにフィルターリクエストの許可と前処理の設定をする
お知らせのリストを取得するエンドポントを持つAPIをクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/bd204dfd21b483041008fbdd5dcd5227.png)

お知らせのリストを取得するエンドポントの[更新]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/072be2f72edc3dfb6bd185b1b2a7822a.png)

`filter_request_allow_list`のパラメータに`ext_1`を入力して、[更新]をクリックします。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/232fd5cae350196cf01c54578a0488e5.png)

次に[前処理]をクリックします。 
![Image from Gyazo](https://t.gyazo.com/teams/diverta/c3d0b93482f8ab8337d2a2935000704f.png)

カテゴリを未分類にし、一覧から「ログインユーザーの情報をフィルタクエリに追加」を設定します。  
![Image from Gyazo](https://t.gyazo.com/teams/diverta/422ce355cabbc4a934801b779cbd46e2.png)

## 動作を確認する
最後に動作確認をします。
ログイン後、お知らせ一覧のページを確認すると、表示される一覧の内容がフィルタリングされていることがわかります。  

![Image from Gyazo](https://t.gyazo.com/teams/diverta/fdb01b08cd293b1263f05281a53d15a8.png)
:::tip
動作確認はSuwagger UIで確認ができませんので、ブラウザ上で確認をするようにしてください。  
参考FAQ：[SwaggerUIで確認できないリクエストがあります。確認する方法はありますか？](/ja/docs/faq/how-do-i-verify-requests-that-cannot-be-verified-with-swagger-ui/)
:::