APIトークンがどのシステムで何に使われているかを知りたい場合は、APIトークン一覧の説明と利用ログを起点に、アプリやWebhook、トリガの設定と照合します。
ログから操作の種類を読み取り、送信元の候補を絞ることができます。ただし、システム名を確定するには、連携設定や実行履歴の確認が必要な場合があります。
確認する順序
1. トークン一覧 → 2. APIトークンログ → 3. 処理の種類の読み解き → 4. アプリ → 5. Webhook → 6. トリガ → 7. 「6」までで特定できない場合
左から順に確認し、利用先の候補を絞り込んでいきます。
1. トークン一覧で用途の手掛かりを探す
管理センターへアクセスし、[アプリおよびインテグレーション] > [API] > [APIトークン] を開きます。
図1 APIトークン一覧の画面例
まず「説明」欄から、アプリ名、チケット取得、データ連携などの用途の手掛かりを探します。
次に、対象トークンの「ID」と「最終使用日時」を控えます。IDだけでは処理内容が分からないため、手順2のログで確認します。なお「アクティブ」は使用可能な状態を表すだけで、実際に使われ続けているかどうかはログで判断します。
参考:Zendesk公式ヘルプ「APIトークンの管理」
2. APIトークンログで実際のリクエストを確認する
ログに記録されるのは直近7日分または最大500MBの範囲です。月次・四半期の処理は含まれないことがあるため、定期的にログを保存して観測期間を広げ、定期処理の実行予定とも照合することをおすすめします。
▪️ ログを取得する
APIトークン一覧の右上にある「APIトークンログを生成」を選択します。ファイルはメールで送信されます。ファイルを保存し、圧縮ファイルの場合は展開してCSVを開きます。
▪️ 対象トークンの行を絞り込む
一覧に表示されている英数字のIDと、CSVの token_identifier(図2のQ列)を照合して、対象の行を絞り込みます。
図2 APIトークンログの確認箇所
| 確認する列 | 何を確認するか |
token_identifier / token_id
|
token_identifier(英数字)は、一覧のIDと照合します。対応が分かった token_id(数値)は、以降の絞り込みにも使えます。 |
token_description(図2のK列) |
一覧の「説明」に相当する、用途の手掛かり。 |
method + url
|
url(図2のG列)と method から、取得・作成・更新などの操作と対象を確認します。 |
timestamp |
実行時刻や実行間隔。 |
ip_address + user_agent
|
送信元サーバーや実行プログラムの候補。サーバーの管理情報と照合します。user_agentの読み解き方は手順3をご覧ください。 |
status_code |
200・201などの成功、401・403などの認証/権限エラー、その他の失敗を区別します。 |
user_id / user_email
|
リクエストの認証に使われたユーザー。 |
参考:Zendesk公式ヘルプ「利用レポートの期間と列の説明」
3. エンドポイントから処理の種類を読み解く
method と url を組み合わせると、何に対してどの操作を行ったかを読み取れます。下表の「利用先の候補」は、調査の当たりを付けるための例です。同じAPIを複数のアプリやスクリプトが使うため、APIだけで製品名を確定することはできません。
| methodとエンドポイントの例 | 処理の種類 | 確認する利用先の候補 |
GET /api/v2/tickets/{id}.json |
チケット情報の取得 | 集計、同期、チケット照会 公式API |
GET /api/v2/tickets/{id}/comments.json |
コメント一覧の取得 | 会話参照、開封確認、外部連携 公式API |
POST /api/v2/tickets.jsonPUT /api/v2/tickets/{id}.json
|
POSTは作成 PUTは更新 |
フォームからの起票、項目更新、コメント追加 公式API |
GET /api/v2/requests/{id}.jsonPOST /api/v2/requests.json
|
GETは参照 POSTは起票 |
利用者向けの問い合わせフォームや照会画面 公式API |
GET /api/v2/search.json |
条件に合うデータの検索 | チケット検索、集計、同期対象の抽出 公式API |
GET /api/v2/incremental/tickets/cursor.json |
変更のあったチケットの取得 | 定期的なデータ同期、集計基盤への取り込み 公式API |
POST /api/v2/uploads.json |
添付ファイルのアップロード | 添付付きフォーム、外部からのチケット作成 公式API |
GET /api/v2/users/{id}.jsonPUT /api/v2/users/{id}.json
|
GETは参照 PUTは更新 |
利用者照会、プロフィール転記、会員連携 公式API |
GET /api/v2/help_center/articles.json |
Guide記事一覧の取得 | 記事同期、検索用取り込み、バックアップ 公式API |
PUT /api/v2/help_center/articles/{id}.json |
Guide記事の属性更新 | ラベルなどの記事設定の管理 公式API |
PUT /api/v2/help_center/articles/{id}/translations/{locale}.json |
記事の言語別タイトルや本文の更新 | 記事本文の同期、翻訳やコンテンツ管理 公式API |
※URLのドメインは省略しています。{id}・{locale} は実際の値に置き換わる箇所です。.json の有無などの表記差があります。
※Tickets APIは主にエージェント向け、Requests APIは利用者が参照できる範囲の問い合わせ操作向けです。
▪️ user_agentから呼び出し元を読み解く
ログの user_agent には、APIを呼び出したプログラムやサービスの情報が記録されます。method・url とあわせて確認すると、利用先の種類を絞り込む手掛かりになります。
| user_agentの例 | 考えられる呼び出し元 | 次に確認すること |
Python-urllib を含むもの |
Pythonで書かれたプログラム。クラウド(AWSなど)上で動くサーバー処理や、データ移行などのスクリプトが考えられます。 | サーバー管理者や連携担当者に、該当する処理がないかを確認します(手順7)。 |
Zendesk Webhook |
ZendeskのWebhook | 手順5・6で、Webhookとそれを呼ぶトリガを確認します。 |
※user_agentは呼び出し側のプログラムで変更できるため、送信元を確定する情報ではありません。IPアドレスや実行時刻とあわせて判断してください。
読み取り処理と判断するときの注意
GETと取得用URLが記録されていれば、その行は読み取り処理です。一定間隔で記録されていれば、定期実行の可能性があります。
ただし、同じトークンの別の行や別の期間に、POST・PUT・DELETEが記録されていないかもご確認ください。
4. インストール済みアプリを確認する
説明やログからアプリの候補が見えたら、管理センターの[アプリおよびインテグレーション]>[アプリ]>[Zendesk Supportアプリ]を開き、「現在インストール済み」と「プライベートアプリ」を確認します。
Zendeskの画面上(サイドバーやナビバーなど)で動くアプリは、通常、ログイン中のユーザーのセッションで認証してAPIを使うため、APIトークンは使用しません。
APIトークンと関係する可能性があるのは、トリガやWebhookを作成するアプリ、チャネルインテグレーションのアプリなど、Zendeskに設定を追加するタイプのアプリや、提供元のサーバーからZendesk APIを呼び出すアプリです。
図3 アプリ一覧の画面例
- 該当しそうなアプリについて、設定や提供元の資料から、Zendeskにどのような設定(トリガ・Webhookなど)を追加するか、提供元のサーバーでどのような処理を行うかを確認します。
- 確認した処理内容と、APIトークンログの
method・urlが示す操作を照合します。
例えば、ユーザー情報を更新するアプリであれば、ログにユーザー更新のリクエストがあるかを確認し、利用先の候補を絞ります。
処理内容が一致していても、そのアプリが対象のAPIトークンを使用しているとは限りません。 - 対応関係が分からない場合は、処理内容や実行時刻を手掛かりに、開発元・提供元へ確認してください。
なお、Zendesk外のフォームや連携システムなど、インストール済みアプリの一覧に表示されない利用先もあります。
アプリによって通信の経路が異なります
アプリのサーバーや定期処理から直接Zendesk APIを呼ぶ構成のほか、ZendeskのトリガやWebhookで外部サーバーへ通知し、通知を受けたサーバーがZendesk APIを呼ぶ構成もあります。
後者の場合は、次の手順5・6でWebhookとトリガの設定を確認します。
参考:Zendesk公式ヘルプ「インストール済みアプリの管理」
5. Webhookの送信先と認証方式を確認する
管理センターへアクセスし、[アプリおよびインテグレーション] > [Webhook] > [Webhook] を開きます。説明やログと関係しそうなWebhookを探し、名前、説明、状態、エンドポイントURL、リクエスト方法、認証方式を確認します。
図4 Webhook設定の画面例
エンドポイントがZendesk APIであれば、URLとGET・POST・PUTなどの方法から対象の操作を確認します。この場合、認証方式の設定に、対象のAPIトークンが使われていることがあります。
外部サーバーのURLであれば、認証方式の設定は送信先の外部サービスへ接続するためのもので、ZendeskのAPIトークンとは別のものです。送信先サービスの仕様や処理履歴を調べ、その後にZendesk APIを呼んでいるかを確認します。
Webhookとトリガの関係
チケットのトリガや自動化から呼ぶWebhookは、呼び出すルール側も確認します。同じWebhookを複数のルールが呼んでいる場合があります。
また、イベントを購読して動くWebhookもあり、その場合はトリガへの接続が前提ではありません。
参考:Zendesk公式ヘルプ「Webhookの管理」/「接続方式の違い」
6. トリガの条件と送信内容を確認する
管理センターへアクセスし、[オブジェクトとルール] > [ビジネスルール] > [トリガ] を開きます。
図5のフィルターで、タイプを「アクション」、カテゴリを「通知方法 > アクティブなWebhook」にして絞り込みます。各トリガの「アクション」で、対象のWebhookへの通知があるかを確認します。
図5 Webhookを使用するトリガの絞り込み例
▪️ 「条件」で、いつ動くかを確認する
作成時か更新時か、対象のフォーム・ブランド・タグ・項目値は何か、「すべて」と「いずれか」のどちらに設定されているかを確認します。
▪️ 「アクション」で、何を送っているかを確認する
通知先のWebhookと、JSON本文・URLパラメーターを確認します。
図6 トリガのアクションの画面例
図6の例では、WebhookのPUTと users のURLから、ユーザー更新が候補になります。本文の user.name と ticket_field_123456789 から、チケットのカスタム項目をユーザー名へ転記する意図が読み取れます。項目IDが何を表すかは、チケットフィールドの設定と照合します。
設定から分かるのは処理の意図です。実際に実行・成功しているかは、Webhookのアクティビティ、APIログ、対象レコードで照合します。
参考:Zendesk公式ヘルプ「トリガの条件とアクション」/「Webhook通知アクション」
7. ここまでで特定できない場合の確認方法
ここまでで特定できない場合は、ログのURL・実行時刻・IP・user_agentをまとめ、サーバー管理者や連携担当者に、該当する処理があるかをご確認ください。フォームやバッチの設定資料、連携サービスの接続設定、実行履歴を優先して照合します。
▪️ よくある判断の迷い
| 状況 | 次に確認すること |
| ログに対象の行がない | 対象期間、レポートの上限、IDの照合を確認し、月次処理などの実行予定を調べます。未使用とは断定しません。 |
| Webhookやアプリが見つからない | Zendesk外のスクリプト、定期バッチ、連携基盤、外部サービスからの直接呼び出しを調べます。 |
| IPやuser_agentが複数ある | 複数システムの可能性がありますが、1つのサービスの分散構成も考えられます。管理資料と照合します。 |
Zendeskサポートへのお問い合わせ
ここまでの手順で利用先を特定できない場合は、Zendeskサポートでも調査が可能です。お問い合わせの際は、下記の情報を添えていただくと、調査がスムーズに進みます。
Zendeskサポートへのお問い合わせ方法はこちら
- 対象のトークンの説明と識別子、ログの対象期間、分からない点
- 該当行のmethod・URL・実行時刻・status_code(必要に応じてIP・user_agent・アプリ名)
- 候補がある場合は、Webhookやトリガの設定画面
共有してはいけない情報
パスワード、APIトークンの秘密値、Authorizationヘッダーは共有しないでください。
ログに含まれるメールアドレスやURLの検索条件、チケット本文などの個人情報は、問い合わせに不要な部分を伏せてからお送りください。
コメント
0件のコメント
記事コメントは受け付けていません。