クライアントクレデンシャルグラントタイプ(2-legged OAuth)
アプリが自身に代わって動作することを認可します。
本 API および本ドキュメントを利用し、連携を構築することにより、Additional API Terms and Guidelines に同意したものとみなされます。
クライアントクレデンシャルグラントタイプ(2-legged OAuth)の概要
Indeed パートナーになると、Indeed は Indeed API とサービスをお客様のプロダクトに連携するアプリをセットアップします。Partner Console でアプリとその OAuth クレデンシャル(クライアント ID と client secret)を確認し、それらのクレデンシャルをアクセストークンと交換して Indeed API 呼び出しを認証します。
次のこともできます。
- 雇用主を表すアクセストークンを取得する。
- 自社に代わって動作することをアプリに認可する。
- 別の会社が自社に代わって動作できるようにする。
Indeedパートナーになる
まだパートナーでない場合は、Indeed パートナーになる をご覧ください。
OAuth クレデンシャルを取得する
-
Indeed ユーザーアカウントで Partner Console にサインインします。
アプリ詳細ページの Credentials タブに、OAuth クレデンシャル(クライアント ID と client secret)が表示されます。
アクセストークンを取得する
アクセストークンを取得するには、curl などのコマンドラインツールや Insomnia などの UI ツールを使用して、次のヘッダーとボディパラメーターで https://apis.indeed.com/oauth/v2/tokens に POST リクエストを送信します。
クライアントシークレットをエンドユーザーに公開しないでください。Indeed は、バックエンドでトークンを生成することを推奨します。
curl -L 'https://apis.indeed.com/oauth/v2/tokens' \ -H 'Accept: application/json' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'client_id=<client_id>' \ -d 'client_secret=<client_secret>' \ -d 'grant_type=client_credentials' \ -d 'scope=employer_access'リクエストヘッダーは次のとおりです。
リクエストボディのパラメーターは次のとおりです。
{ "access_token": "<access_token>", "scope": "employer_access", "token_type": "Bearer", "expires_in": 3600}トークンは 1 時間(3600 秒)で有効期限が切れます。トークンは 1 時間ごとに更新します。
Indeed API を呼び出す
Indeed GraphQL APIを呼び出すには、以下のヘッダーとGraphQLクエリまたはミューテーションを指定してhttps://apis.indeed.com/graphqlにPOSTリクエストを送信します。
curl -L 'https://apis.indeed.com/graphql' \ -H 'Authorization: Bearer <access_token>' \ -H 'Content-Type: application/json' \ -d '{"query":"query {\n jobSearch(\n location: { radius: 5, radiusUnit: MILES, where: \"Austin\" }\n what: \"Nurse\"\n limit: 5\n ) {\n results {\n job {\n title\n sourceEmployerName\n }\n }\n }\n}","variables":{}}'リクエストヘッダー:
| ヘッダー | 値 | 説明 |
|---|---|---|
|
| このヘッダーを使用してサーバーで認証し、保護されたリソースにアクセスします。 このヘッダーで
アクセストークンを取得する、Authorization header、およびBasic authentication schemeをご覧ください。 |
|
| リソースのメディアタイプです。 Content-Type ヘッダーをご覧ください。 |
-dパラメーターでGraphQLクエリを指定します。
query { jobSearch(location: { radius: 5, radiusUnit: MILES, where: "Austin" } what: "Nurse" limit: 5) { results { job { title sourceEmployerName } } }}{ "errors": [{ "message": "The client does not have access to the 'job-retrieval-service' service.", "extensions": { "code": "INTERNAL_SERVER_ERROR" } }], "data": null}雇用主を表すアクセストークンを取得する
一部の Indeed API では、雇用主または広告主を表すアクセストークンが必要です。
雇用主のアクセストークンを取得するには、次の手順を実行します。
- ユーザーが管理できる雇用主を一覧表示する雇用主選択画面を作成します。
- 雇用主を選択し、その雇用主を表すアクセストークンを取得します。
各アクセストークンは 1 つの雇用主を表します。雇用主を切り替えるには、新しいアクセストークンを取得します。
雇用主選択画面を作成する
-
scope=employer_accessを指定してアクセストークンを取得します。このスコープを使用して、ユーザーが管理できる雇用主アカウントを一覧表示します。
-
Authorization: Bearer <access_token>ヘッダーを指定してhttps://secure.indeed.com/v2/api/appinfoエンドポイントを呼び出します。<access_token>はアクセストークンです。ユーザーに関連付けられた雇用主アカウントがある場合、レスポンスには各雇用主の
idとnameが含まれます。{"employers": [{"id": "084a39249af95beedfb90cc5d2b8833c","name": "Dharma Initiative"},{"id": "865e08b649774436ee1f410b611fad7c","name": "Umbrella Corporation"},{"id": "4bc393648e880bc94dd6cef8efbc8486","name": "US Robotics and Mechanical Men"}]}この例では、US Robotics and Mechanical Men の
idは4bc393648e880bc94dd6cef8efbc8486です。 -
雇用主リストを表示し、ユーザーが 1 つ選択できるようにします。
雇用主アクセストークンを取得する
ユーザーが雇用主を選択した後、Accept ヘッダーと Content-Type ヘッダー、および次のボディパラメーターを指定して https://apis.indeed.com/oauth/v2/tokens に POST します。
curl -L 'https://apis.indeed.com/oauth/v2/tokens' \ -H 'Accept: application/json' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=client_credentials' \ -d 'scope=employer_access' \ -d 'client_id=<client_id>' \ -d 'client_secret=<client_secret>' \ -d 'employer=<employer_id>'リクエストヘッダーは次のとおりです。
リクエストボディパラメーターは次のとおりです。
| リクエストボディパラメーター | 必須 | 値 |
|---|---|---|
grant_type | ✔ | client_credentials |
scope | ✔ | employer_access |
client_id | ✔ | クライアント ID。 |
client_secret | ✔ | client secret。 |
employer | ✔ | ユーザーが選択した雇用主の ID。 |
レスポンスには、選択した雇用主を表すアクセストークンが含まれます。
{ "access_token": "<access_token>", "scope": "employer_access", "token_type": "Bearer", "expires_in": 3600}ユーザーが管理していない雇用主のアクセストークンをリクエストすると、次のエラーが返されます。
{ "error_description": "Invalid request", "error": "invalid_request"}自社に代わって動作することをアプリに認可する
Indeed の Users ページを使用して、自社に代わって動作することをアプリに認可したり、アプリの認可を取り消したりできます。
- Indeed の Users ページで雇用主アカウントを選択し、Add users を選択します。
- ユーザーのメールアドレスを入力します。
- アクセスレベルを選択し、Save and notify new users を選択します 。
ユーザーには、Indeed 上でお客様の組織に参加するための招待メールが届きます。ユーザーが承諾すると、選択した権限を受け取ります。
別の会社が自社に代わって動作できるようにする
別の会社が自社に代わって動作できるようにするには、自社の employer ID をその会社と共有します。
この ID は、Indeed の Users ページのフッターの上に小さなフォントで表示されます。employer ID は機密情報ではないため、他社と共有できます。
関連項目
- Credentials
- HTTP request headers
- oauth/v2/tokensエンドポイント
- v2/api/appinfoエンドポイント
- Basic認証スキーム
- OAuthエラーのトラブルシューティング
- GraphQLエラーのトラブルシューティング