Indeedとの連携とAPIの呼び出し
OAuth認証情報を取得し、最初のAPI呼び出しを行います。
本 API および本ドキュメントを利用し、連携を構築することにより、Additional API Terms and Guidelines に同意したものとみなされます。
概要
Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console (新しいウィンドウで開きます) にサインインして、アプリと OAuth 認証情報(クライアント ID、シークレット、および 3-legged OAuth の認可コード)を確認します。これらの認証情報をアクセストークンと交換し、API 呼び出しを認証します。
手順
1. Indeed パートナーになる
まだパートナーでない場合は、Indeedパートナーになる (新しいウィンドウで開きます)手続きを行ってください。
2. OAuth認証情報を取得する
-
ご自身のIndeedユーザーアカウントでPartner Console (新しいウィンドウで開きます)にサインインします。
-
Dashboardで、Appsリストからアプリを選択します。
アプリの詳細ページのCredentialsタブに、OAuth認証情報(クライアントIDとシークレット)が表示されます。
3. アクセストークンを取得する
アクセストークンを取得するには、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 時間ごとに更新します。
4. 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 | Bearer <token> | このヘッダーを使用してサーバーで認証し、保護されたリソースにアクセスし ます。このヘッダーで Bearer 認証スキームを使用してアクセストークンを渡します。oauth/v2/tokens エンドポイントでは、リクエストボディで client_id と client_secret を渡す代わりに、Basic 認証スキームを使用します。アクセストークンを取得する、Authorization header (新しいウィンドウで開きます)、およびBasic authentication schemeをご覧ください。 |
Content-Type | application/json | リソースのメディアタイプ (新しいウィンドウで開きます)です。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}