- ワークフロー
- Job Update API リファレンス
- シートと求人レベルの更新
- updateSourcedJobPostings が影響する対象
- clearSourcedJobPostingUpdates が影響する対象
- シート管理の概要
- 認証
- シートを追加
- シート追加のワークフロー
- リクエスト - シートを追加
- レスポンス - シートを追加
- シートを更新
- シート更新のワークフロー
- リクエスト - シートを更新
- レスポンス - シートを更新
- シートをクリア
- シートをクリアするワークフロー
- リクエスト - シートをクリア
- レスポンス - シートをクリア
- レート制限
- エラーをトラブルシューティング
- FORBIDDEN: Advertiser is in a restricted moderation status
- FORBIDDEN: You are missing permissions for this action
- BAD_USER_INPUT: seatPostingId already exists
- UNAUTHENTICATED
- BAD_USER_INPUT
- NOT_FOUND
- DOWNSTREAM_SERVICE_ERROR or INTERNAL_SERVER_ERROR
Job Update API シート管理ガイド
雇用主求人を変更せずに、シートを追加、更新、または期限切れにします。
このAPIとそのドキュメントを使用して連携を構築すると、APIに関する追加の利用規約およびガイドラインに同意したことになります。
雇用主求人とは、雇用主の採用ニーズを表すもので、一般に採用要求(requisition)と呼ばれます。シートとは、その雇用主求人に属する 1 件の求人掲載です。1 つの雇用主求人に複数のシートを持たせることができます。たとえば、同じ職種を異なる勤務地で募集す る場合です。
シートベースのミューテーションを使用すると、雇用主求人を変更せずにシートを追加、更新、または期限切れにできます。
ワークフロー
親の雇用主求人とは別にシートを管理します。ATS は親求人を作成し、期限切れにします。シート操作が影響するのはシートだけであり、雇用主求人には影響しません。
Job Update API リファレンス
addSeats- 雇用主求人にシートを追加します。updateSeats- シートレベルのフィールドを更新します。clearSeats- シートの更新をクリアするか、更新をクリアして代理店が作成したシートを期限切れにします。findEmployerJobsPartner- 雇用主の求人掲載を一覧表示します。updateSourcedJobPostings- 求人に属するすべてのシートに適用される、雇用主求人レベルのフィールドを更新します。clearSourcedJobPostingUpdates- 広告代理店向けに求人掲載の更新をクリアします。
シートと求人レベルの更新
シートを使用する求人でも updateSourcedJobPostings と clearSourcedJobPostingUpdates を使用できますが、これらのミューテーションが更新するレイヤーは異なります。複数シートの連携を構築する前に、この分離を理解してください。
updateSourcedJobPostings が影響する対象
updateSourcedJobPostings は個々のシートではなく、親の雇用主求人を更新します。タイトル、説明、会社名など、このミューテーションが上書きするフィールドは雇用主求人に適用され、すべてのシートに反映されます。
雇用主求人に複数のシートがある場合、updateSourcedJobPostings では勤務地、給与、キャンペーンカテゴリ、URL などのシートレベルのフィールドを更新できません。これらのフィールドを特定のシートで更新するには、updateSeats を使用します。
単一シートの求人では、updateSourcedJobPostings を使用して、雇用主求人レベルのフィールドとシートレベルのフィールドの両方を 1 回の呼び出しで更新できます。
タイトル、説明、会社名のようにシートレベルの対応項目がないフィールドは、求人に複数のシートがある場合でも、常に updateSourcedJobPostings によって親求人レベルで更新されます。
clearSourcedJobPostingUpdates が影響する対象
clearSourcedJobPostingUpdates は、複数シートの求人に対して破壊的です。updateSourcedJobPostings による親求人レベルのすべての上書きを削除し、updateSeats によるすべてのシートレベル更新をクリアし、addSeats で作成されたすべてのシートを期限切れにします。その後、親求人は ATS の最新データに戻ります。ATS が作成したシートは残りますが、代理店が作成したシートは残りません。
clearSourcedJobPostingUpdates を 1 つのシートの変更に使用しないでください。1 つのシートを期限切れにするかリセットするには、clearSeats を使用します。シートを期限切れにせずにシートレベルのフィールド変更を元に戻したい場合は、updateSeats を使用します。親の雇用主求人が期限切れでない限り、updateSeats を使用して期限切れになった代理店作成シートを再有効化することもできます。
シート管理の概要
| 操作 | 対象範囲 | シートへの影響 |
|---|---|---|
updateSourcedJobPostings | 単一シート求人では求人全体、複数シート求人では職務レベルの求人 | 複数シートを持つ求人でシートレベルのフィールドを更新するとエラーを返します。代わりに updateSeats を使用してください。 |
clearSourcedJobPostingUpdates | 求人全体 | すべての求人レベル更新とシートレベル更新をクリアし、代理店が作成したすべてのシートを期限切れにします。 |
addSeats, updateSeats, clearSeats | 個別のシート | 親求人や他のシートには影響しません。 |
認証
Indeed パートナーになると、Indeed が連携用のアプリを作成します。Partner Console にサインインして、アプリと OAuth 認証情報(クライアント ID、クライアントシークレット、および 3-legged OAuth の場合は認可コード)を確認します。認証情報をアクセストークンと交換し、API 呼び出しを認証します。
すべてのシートミューテーションには、広告主 ID に対応する 2-legged アクセストークンが必要です。
トークンには次のスコープを含める必要があります。
employer_accessemployer.hosted_job
アクセストークンを取得したら、リクエストに含めます。Indeed では、トークンの有効期限が切れる前に更新することを推奨しています。
認証の詳細については、Indeed と連携して API を呼び出す、雇用主を表すアクセストークンを取得する、および Scopes をご覧ください。
シートを追加
addSeats を呼び出して、雇用主求人にシートを追加します。各シートには一意の seatPostingId を指定します。レスポンスでは jobKey が返されます。後続の updateSeats 呼び出しと clearSeats 呼び出しのために、この jobKey を保存します。
addSeats は、seatPostingId がその雇用主求人上ですでに存在する場合に失敗します。また、同じ求人上の別のシートと市区町村レベルで重複する場合にも失敗します。各求人に追加できるシートは最大 10 件です。
シート追加のワークフロー
- 1.
雇用主求人を特定します。
createSourcedJobPostingsを使用してsourcedPostingId(UUID)を取得します。findEmployerJobsPartnerを使用してemployerJobId(base64 エンコードされた IRI)またはEmployerJob型を取得します。 - 2.
シートを追加します。一意の
seatPostingIdと必須のbody.locationを指定してaddSeatsを呼び出します。各呼び出しで 1 つのシートが追加されます。 - 3.
jobKeyを保存します。レスポンスは、新しいシートのjobKeyを返します。後続のupdateSeats呼び出しとclearSeats呼び出しではSeatIdentifierInput.jobKeyを使用します。EmployerJobSeatMetaDataからjobKeyを取得することもできます。 - 4.
シートを確認します。
findEmployerJobsPartnerを呼び出し、seatsConnectionを確認して、そのシートが雇用主求人に表示されることを検証します。
リクエストの詳細については、リクエスト - シートを追加、addSeats、および AddSeatsInput をご覧ください。
雇用主求人の識別子については、createSourcedJobPostings と findEmployerJobsPartner をご覧ください。
レスポンスの詳細については、レスポンス - シートを追加 と AddSeatsPayload をご覧ください。
シートの確認方法については、findEmployerJobsPartner と 条件で求人掲載を一覧表示する をご覧ください。レート制限については、レート制限 をご覧ください。
リクエスト - シートを追加
jobsIngest.addSeats を呼び出して、雇用主求人にシートを追加します。
この操作には、広告主を表し、次のスコープを含むアクセストークンが必要です。
employer_accessemployer.hosted_job
雇用主スコープのアクセストークンの詳細については、雇用主を表すアクセストークンを取得する をご覧ください。トークンは employer ID ではなく advertiser ID に関連付けます。
例 - 勤務地、給与、メタデータを指定してシートを追加する GraphQL リクエスト
mutation AddSeats { jobsIngest { addSeats(input: { seatAdditions: [{ employerJob: { sourcedPostingId: "<SOURCED POSTING ID>" } seatPostingId: "<YOUR UNIQUE SEAT ID>" body: { location: { country: "US" cityRegionPostal: "Austin, TX, 78701" streetAddress: "1234 Congress Ave" latitude: 30.2672 longitude: -97.7431 } salary: { currency: "USD" minimumMinor: 6000000 maximumMinor: 8000000 period: YEAR } } metadata: { taxonomyClassification: { remoteType: "Hybrid Remote" attributes: ["software-engineering", "full-time"] } campaignCategories: ["austinCampaign"] url: "https://www.example.com/jobs/austin-123" } }] }) { results { sourcedPostingId employerJobId seatPostingId jobKey } } }}addSeats は、型 AddSeatsInput の引数 input を 1 つ取ります。input には 1 つのフィールド seatAdditions があり、これは AddSeatInput オブジェクトの配列です。各呼び出しで追加できるシートは 1 つです。複数の項目を渡すとエラーが返されます。
各 AddSeatInput オブジェクトには次のフィールドが含まれます。
| Field | Type | Description |
|---|---|---|
employerJob.sourcedPostingId | ID | 必須です。sourcedPostingId または employerJobId のいずれか 1 つだけを指定します。createSourcedJobPostings から返される UUID です。シートの対象となる雇用主求人を識別します。 |
employerJob.employerJobId | ID | 必須です。sourcedPostingId または employerJobId のいずれか 1 つだけを指定します。EmployerJob の base64 エンコードされた IRI です。createSourcedJobPostings または findEmployerJobsPartner によって返されます。 |
seatPostingId | ID! | 必須です。代理店が指定するシート識別子です。雇用主求人上のすべてのシートで一意である必要があります。後続の updateSeats 呼び出しと clearSeats 呼び出しでは、返された jobKey とあわせて使用します。 |
body.location.country | CountryCode! | 必須です。国コードです。サポートされている言語コード、国コード、および locale をご覧ください。 |
body.location.cityRegionPostal | String! | 必須です。市区町村、地域、および郵便番号です。 例:
|
body.location.streetAddress | String | シートの勤務地の番地です。 例: |
body.location.latitude | Float | シートの勤務地の緯度です。正確な座標を指定するには longitude とあわせて使用します。 |
body.location.longitude | Float | シートの勤務地の経度です。 |
body.salary.currency | CurrencyCode! | 給与を指定する場合に必須です。USD などの ISO 4217 通貨コードです。 |
body.salary.minimumMinor | Int64 | 現地通貨の最小単位で表した最低給与です。 たとえば USD では、 固定給与の場合は、 |
body.salary.maximumMinor | Int64 | 現地通貨の最小単位で表した最高給与です。 |
body.salary.period | JobSalaryPeriod! | 給与を指定する場合に必須です。HOUR や YEAR などの給与期間です。 |
metadata.taxonomyClassification.remoteType | String | シートの勤務地の柔軟性です。有効な値は Fully Remote と Hybrid Remote です。リモートではないシートでは省略するか null に設定します。 |
metadata.taxonomyClassification.attributes | [String!] | SUID や文字列などのタクソノミー属性です。1 つのシートあたり最大 100 件です。 |
metadata.campaignCategories | [String!] | キャンペーン内で関連するシートをグループ化するためのカテゴリタグです。カテゴリでシートをターゲティングするには、ad_campaign_category:{category} を使った Sponsored Jobs API クエリを記述します。 |
metadata.url | WebUrl | シート固有の求人 URL です。シートについては親求人の URL を上書きします。Indeed Apply が有効でない場合は、求職者の応募用に使用します。 |
レスポンス - シートを追加
addSeats は AddSeatsPayload オブジェクトを返します。このオブジェクトには results 配列が含まれ、各要素はそれぞれのシート追加に対応する AddSeatResult オブジェクトです。
各 AddSeatResult には次のフィールドが含まれます。
| Field | Type | Description |
|---|---|---|
sourcedPostingId | ID! | 雇用主求人の UUID です。SourcedJobPosting.sourcedPostingId と同じです。 |
employerJobId | ID! | 雇用主求人の base64 エンコードされた IRI です。EmployerJob.id と同じです。 |
seatPostingId | ID! | 指定したシート識別子です。 |
jobKey | ID! | シートの JobPost 用の暗号化 ID です。updateSeats と clearSeats では SeatIdentifierInput.jobKey を使用します。findEmployerJobsPartner の EmployerJobSeatMetaData から取得することもできます。 |
シートを更新
updateSeats を呼び出して、勤務地、給与、タクソノミー分類、キャンペーンカテゴリ、URL などのシートレベルのフィールドを変更します。ATS が作成したシートにも、addSeats で作成したシートにも使用できます。変更したくないフィールドは省略します。
updateSeats を呼び出すには、addSeats のレスポンス、または findEmployerJobsPartner の seatsConnection 内にある EmployerJobSeatMetaData から取得した jobKey が必要です。
シート更新のワークフロー
- 1.
シートの
jobKeyを取得します。addSeatsのレスポンス、またはfindEmployerJobsPartnerのseatsConnectionにあるEmployerJobSeatMetaDataから取得します。 - 2.
シートを更新します。雇用主求人の識別子、シートの
jobKey、および変更するフィールドを指定してupdateSeatsを呼び出します。更新したくないフィールドは省略します。各呼び出しで 1 つのシートが更新されます。 - 3.
更新を確認します。
findEmployerJobsPartnerを呼び出してseatsConnectionを確認し、変更を検証します。更新は通常 30 秒以内に反映されますが、この時間は保証されません。
jobKey の取得方法については、レスポンス - シートを追加、findEmployerJobsPartner、および EmployerJobSeatMetaData をご覧ください。
リクエスト構文と入力フィールドについては、リクエスト - シートを更新、updateSeats、および UpdateSeatsInput をご覧ください。
更新の確認方法については、findEmployerJobsPartner と 条件で求人掲載を一覧表示する をご覧ください。レート制限については、レート制限 をご覧ください。
リクエスト - シートを更新
jobsIngest.updateSeats を呼び出して、シートを更新します。
この操作には、広告主を表し、次 のスコープを含むアクセストークンが必要です。
employer_accessemployer.hosted_job
雇用主スコープのアクセストークンの詳細については、雇用主を表すアクセストークンを取得する をご覧ください。
各 updateSeats 呼び出しで更新できるシートは 1 つです。変更したいフィールドだけを指定します。
例 - シートを更新する GraphQL リクエスト
mutation UpdateSeats { jobsIngest { updateSeats(input: { seatUpdates: [{ employerJob: { sourcedPostingId: "<SOURCED POSTING ID>" } seatIdentifier: { jobKey: "<JOB KEY>" } body: { location: { country: "US" cityRegionPostal: "Dallas, TX, 75201" streetAddress: "500 Main Street" latitude: 32.7767 longitude: -96.7970 } salary: { currency: "USD" minimumMinor: 7000000 maximumMinor: 9000000 period: YEAR } } metadata: { taxonomyClassification: { remoteType: "Hybrid Remote" attributes: ["software-engineering", "full-time"] } campaignCategories: ["dallasCampaign"] url: "https://www.example.com/jobs/dallas-123" } }] }) { results { sourcedPostingId employerJobId seatPostingId jobKey } } }}updateSeats は、型 UpdateSeatsInput の引数 input を 1 つ取ります。input には 1 つのフィールド seatUpdates があり、これは UpdateSeatInput オブジェクトの配列です。各呼び出しで 1 つのシートを更新します。
各 UpdateSeatInput オブジェクトには次のフィールドが含まれます。
| Field | Type | Description |
|---|---|---|
employerJob.sourcedPostingId | ID | 必須です。sourcedPostingId または employerJobId のいずれか 1 つだけを指定します。シートを所有する雇用主求人の UUID です。 |
employerJob.employerJobId | ID | 必須です。sourcedPostingId または employerJobId のいずれか 1 つだけを指定します。雇用主求人の base64 エンコードされた IRI です。 |
seatIdentifier.jobKey | ID | 必須です。更新するシートの暗号化識別子です。addSeats によって返されます。EmployerJobSeatMetaData にもあります。 |
body.location | SeatLocationInput | 更新後の勤務地です。変更しない場合は省略するか null に設定します。指定する場合は country と cityRegionPostal が必須です。 |
body.salary | SeatJobPostingSalaryInput | 更新後の給与です。変更しない場合は省略するか null に設定します。指定する場合は currency と period が必須です。 |
metadata.taxonomyClassification | SourcedJobPostingTaxonomyInput | 更新後のタクソノミー分類です。変更しない場合は省略します。 |
metadata.campaignCategories | [String!] | 更新後のキャンペーンカテゴリタグです。変更しない場合は省略します。既存のカテゴリ集合を置き換えます。 |
metadata.url | WebUrl | 更新後のシート固有の求人 URL です。変更しない場合は省略するか null に設定します。 |
レスポンス - シートを更新
updateSeats は UpdateSeatsPayload オブジェクトを返します。このオブジェクトには results 配列が含まれ、各要素はそれぞれのシート更新に対応する UpdateSeatResult オブジェクトです。
各 UpdateSeatResult には次のフィールドが含まれます。
| Field | Type | Description |
|---|---|---|
sourcedPostingId | ID! | 雇用主求人の UUID です。 |
employerJobId | ID! | 雇用主求人の base64 エンコードされた IRI です。 |
seatPostingId | ID | 代理店が指定するシート識別子です。シートが更新されなかった場合は null です。 |
jobKey | ID | 暗号化されたシート識別子です。シートが更新されなかった場合は null です。 |
シートをクリア
addSeats で追加した代理店作成シートに対しては、clearSeats により updateSeats の変更が削除され、そのシートは期限切れになって検索結果に表示されなくなります。ATS が作成したシートに対しては、clearSeats は更新だけを削除します。シートは期限切れになりません。clearSeats は親の雇用主求人や同じ求人上の他のシートには影響しません。
シートをクリアするワークフロー
- 1.
シートの
jobKeyを取得します。addSeatsのレスポンス、またはfindEmployerJobsPartnerのseatsConnectionにあるEmployerJobSeatMetaDataから取得します。 - 2.
シートをクリアします。雇用主求人の識別子とシートの
jobKeyを指定してclearSeatsを呼び出します。各呼び出しで 1 つのシートをクリアします。 - 3.
シートがクリアされたことを確認します。
findEmployerJobsPartnerを呼び出してseatsConnectionを確認し、そのシートが雇用主求人に表示されなくなったことを検証します。
jobKey の取得方法については、レスポンス - シートを追加、findEmployerJobsPartner、および EmployerJobSeatMetaData をご覧ください。
リクエスト構文と入力フィールドについては、リクエスト - シートをクリア、clearSeats、および ClearSeatsInput をご覧ください。
クリアされたシートの確認方法については、findEmployerJobsPartner と 条件で求人掲載を一覧表示する をご覧ください。レート制限については、レート制限 をご覧ください。
リクエスト - シートをクリア
jobsIngest.clearSeats を呼び出して、雇用主求人からシートを期限切れにします。
この操作には、広告主を表し、次のスコープを含むアクセストークンが必要です。
employer_accessemployer.hosted_job
雇用主スコープのアクセストークンの詳細については、雇用主を表すアクセストークンを取得する をご覧ください。
各 clearSeats 呼び出しで削除されるシートは 1 つです。
例 - jobKey でシートを期限切れにする GraphQL リクエスト
mutation ClearSeats { jobsIngest { clearSeats(input: { seatRemovals: [{ employerJob: { sourcedPostingId: "<SOURCED POSTING ID>" } seatIdentifier: { jobKey: "<JOB KEY>" } }] }) { results { sourcedPostingId employerJobId seatPostingId jobKey } } }}clearSeats は、型 ClearSeatsInput の引数 input を 1 つ取ります。
input には 1 つのフィールド seatRemovals があり、これは ClearSeatInput オブジェクトの配列です。各呼び出しで 1 つのシートを削除します。
各 ClearSeatInput オブジェクトには次のフィールドが含まれます。
| Field | Type | Description |
|---|---|---|
employerJob.sourcedPostingId | ID | 必須です。sourcedPostingId または employerJobId のいずれか 1 つだけを指定します。シートを所有する雇用主求人の UUID です。 |
employerJob.employerJobId | ID | 必須です。sourcedPostingId または employerJobId のいずれか 1 つだけを指定します。雇用主求人の base64 エンコードされた IRI です。 |
seatIdentifier.jobKey | ID | 必須です。削除するシートの暗号化 ID です。addSeats によって返され、EmployerJobSeatMetaData でも利用できます。 |
レスポンス - シートをクリア
clearSeats は ClearSeatsPayload オブジェクトを返します。このオブジェクトには results 配列が含まれ、各要素はそれぞれのシート削除に対応する ClearSeatResult オブジェクトです。
各 ClearSeatResult には次のフィールドが含まれます。
| Field | Type | Description |
|---|---|---|
sourcedPostingId | ID! | 雇用主求人の UUID です。 |
employerJobId | ID! | 雇用主求人の base64 エンコードされた IRI です。 |
seatPostingId | ID | 代理店が指定するシート識別子です。解決できない場合は null です。 |
jobKey | ID | 暗号化されたシート識別子です。シートがクリアされなかった場合は null です。 |
レート制限
シートベースのミューテーションにはレート制限があります。制限内に収まるよう、一定間隔を空けてリクエストを送信してください。
addSeats、updateSeats、および clearSeats の正確な制限値は、まだ確認されていません。これらのミューテーションは、関連するミューテーションが 1 つの 1 秒あたりリクエスト数制限を共有する Job Update API のパターンに従う見込みです。
制限を超えると、HTTP ステータスまたは GraphQL の errors 配列で HTTP 429 を受け取ります。少し待ってから再試行してください。サポートが必要な場合は、サポートを依頼してください。
HTTP 429 と関連する制限の詳細については、次を参照してください。
エラーをトラブルシューティング
OAuth エラーについては、OAuth エラーをトラブルシューティングする をご覧ください。
GraphQL エラーについては、GraphQL エラーをトラブルシューティングする をご覧ください。
次のエラーが表示されることがあります。
FORBIDDEN: Advertiser is in a restricted moderation statusFORBIDDEN: You are missing permissions for this actionBAD_USER_INPUT:seatPostingIdalready existsUNAUTHENTICATEDBAD_USER_INPUTNOT_FOUNDDOWNSTREAM_SERVICE_ERRORorINTERNAL_SERVER_ERROR
FORBIDDEN: Advertiser is in a restricted moderation status
{ "errors": [{ "extensions": { "code": "FORBIDDEN", "message": "Advertiser is in a restricted moderation status" } }]}意味: OAuth トークンに関連付けられた広告主が、スパム対策のため制限されています。
対処方法: このエラーはまれです。発生した場合は、制限を解除するためにパートナーマネージャーに連絡してください。
FORBIDDEN: You are missing permissions for this action
{ "errors": [{ "extensions": { "code": "FORBIDDEN", "message": "You are missing permissions for this action. Ask your administrator for the permissions [Hosted_Job Create, Hosted_Job Update, Hosted_Job Read]" } }]}意味: OAuth トークンに関連付けられたユーザーは、求人シートを管理できません。
対 処方法: 管理者が OAuth クライアントを作成していない場合は、関連付けられたユーザーに必要な権限を付与するよう管理者に依頼してください。管理者は UI でこれらの権限を更新できます。ロールと権限の管理については、Understanding Indeed Account Settings: User Roles & Privileges をご覧ください。
BAD_USER_INPUT: seatPostingId already exists
意味: addSeats の seatPostingId が、この雇用主求人上ですでに存在しています。各シートには一意の seatPostingId が必要です。
対処方法: この雇用主求人でまだ使用されていない seatPostingId を使用してください。シートを更新する場合は、addSeats ではなく updateSeats を使用します。
UNAUTHENTICATED
{ "extensions": { "code": "UNAUTHENTICATED" }}意味: OAuth トークンの有効期限が切れているか、形式が正しくありません。
対処方法: OAuth エラーをトラブルシューティングする をご覧ください。
BAD_USER_INPUT
{ "extensions": { "code": "BAD_USER_INPUT" }}意味: リクエストの一部の形式が正しくありません。詳細は message フィールドを確認してください。
対処方法: 形式が正しくないフィールドを修正してください。リクエスト形式については、addSeats、updateSeats、および clearSeats をご覧ください。
NOT_FOUND
{ "extensions": { "code": "NOT_FOUND" }}意味: 雇用主求人または シートが見つかりませんでした。
対処方法: sourcedPostingId または employerJobId が正しいこと、および OAuth トークンが正しい広告主に対して要求されたことを確認してください。jobKey が正しいこと、およびシートがすでにクリアされていないことも確認してください。
DOWNSTREAM_SERVICE_ERROR or INTERNAL_SERVER_ERROR
{ "extensions": { "code": "DOWNSTREAM_SERVICE_ERROR" }}{ "extensions": { "code": "INTERNAL_SERVER_ERROR" }}意味: サーバー内部エラーが発生しました。
対処方法: 後でもう一度試してください。エラーが続く場合は、パートナーマネージャーに連絡してください。