> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# よくあるエラーコード

> 本記事では、DingTalk サーバーサイド連絡先 API を呼び出す際によく発生するエラーについて説明します。

## userId と unionId の具体的なシーン別の違い

回答：userId と unionId の具体的なシーン別の違いは次のとおりです。

1. ユーザーの userid は同一企業内でグローバルに一意であり、重複することはありません。
2. ユーザーの unionId は同一アプリサービス内でグローバルに一意です。例えば、小钉さんが 3 つの企業に同時に所属しており、同じサードパーティ社内アプリを共用している場合、当該サードパーティ社内アプリ経由で小钉さんの情報を取得すると、unionId は同一になります。
3. userId から対応する unionId を照会できます。[ユーザー詳細の照会](/ja/open/development/query-user-details)を参照してください。逆に unionId から対応する userId を照会することも可能です。[unionid によるユーザー userid の取得](/ja/open/development/query-a-user-by-the-union-id)を参照してください。

## ユーザートークン取得 API を呼び出しても corpId が返らない

回答：[ユーザートークンの取得](/ja/open/development/obtain-user-token) API を呼び出した際に上記の問題が発生する原因は次のとおりです。

[ログインユーザーのアクセス認証情報の取得](/ja/open/development/obtain-identity-credentials)でログイン権限付与ページを構築する際に、scope=openid%20corpid を渡す必要があります。権限付与後に取得した authcode でユーザートークンを取得すれば、corpid が返されます。

## 企業全社員の情報を取得する方法

回答：DingTalk では企業全社員の情報を取得する API は提供していません。開発者は以下の方法で企業全社員の情報を取得できます。詳細なフローは、企業内の全社員情報を取得する使用例を参照してください。

1. まず部門リスト取得 API を呼び出し、当該企業のすべての部門 ID を取得します。
2. [部門ユーザー userid リストの取得](/ja/open/development/query-the-list-of-department-userids) API を順次呼び出します。

   連絡先の API 権限が**すべての社員**になっていることを確認してください。

## ユーザー個人連絡先情報取得 API を呼び出してもメールが返らない

回答：[ユーザー連絡先プロフィールの取得](/ja/open/development/dingtalk-retrieve-user-information) API を呼び出した際に上記の問題が発生する原因は次のとおりです。

DingTalk クライアントサイドのメール設定でメールアドレスを設定している場合のみ、メールデータが返されます。

<Warning>
  DingTalk が提供するメール（例：[xxx@dingtalk.io](mailto:xxx@dingtalk.io)）はメールデータとして返されません。
</Warning>

## ユーザー情報内の部門責任者をクリアする方法

回答：[ユーザー情報の更新](/ja/open/development/user-information-update) API を呼び出して部門責任者をクリアする方法は次のとおりです。

部門責任者をクリアする際は、force\_update\_fields（強制更新フィールド）に dept\_manager\_userid\_list（部門責任者）を設定してください。dept\_manager\_userid\_list を空で渡さないでください。エラーが発生します。

## ユーザー詳細照会 API を呼び出してもユーザーの携帯電話番号を取得できない

回答：[ユーザー詳細の照会](/ja/open/development/query-user-details) API を呼び出した際に上記のエラーが発生する原因は、API 権限不足の可能性があります。

解決方法：[DingTalk 開発者プラットフォーム](https://open-dev.dingtalk.io/#/)で当該アプリの詳細を開き、API 権限の入口から携帯電話番号情報を取得する権限の申請を行ってください。

## 「リクエストされたユーザー userid／部門 id が権限付与範囲内にありません」というエラーについて

* 社内アプリの場合：開発者プラットフォームで対応するアプリの権限管理画面に入り、対応する部門またはメンバーが権限付与範囲に追加されているかを確認してください。
* サードパーティ社内アプリの場合：権限付与企業（当該アプリを有効化して使用する企業）が [DingTalk 管理画面](https://oa.dingtalk.io/) **> ワークスペース > アプリ管理**で対応するサードパーティアプリを選択し、設定ボタンをクリックします。ポップアップ画面で、対応するメンバーが表示範囲に追加されているかを確認してください。

## 連絡先 API を呼び出すと `errcode 50002 リクエストされた社員 userid が権限付与範囲内にありません` というエラーが発生する

回答：リクエスト API の accessToken に対応するアプリにおいて、開発者プラットフォームの**権限管理**ページの権限付与範囲に当該社員が含まれていません。

解決方法：権限管理の**追加**ボタンをクリックし、当該ユーザーを**権限付与メンバー**に追加してください。

## 連絡先 API を呼び出すと `errcode 50004 リクエストされた部門 id が権限付与範囲内にありません` というエラーが発生する

回答：リクエスト API の accessToken に対応するアプリにおいて、開発者プラットフォームの**権限管理**ページの権限付与範囲に当該部門が含まれていません。

解決方法：権限管理の**追加**ボタンをクリックし、変更する部門を**権限付与メンバー**に追加してください。

## ユーザー情報更新を呼び出すと `errcode 40022 企業内の携帯電話番号と DingTalk ログイン用の携帯電話番号が一致しません` というエラーが発生する

回答：[ユーザー情報の更新](/ja/open/development/user-information-update) API を呼び出した際に上記のエラーが発生する原因は、API がユーザーの携帯電話番号の変更を一時的にサポートしていないためです。削除後に再度追加してください。

## 携帯電話番号によるユーザー照会を呼び出すと `errmsg 呼び出し権限がありません` というエラーが発生する

回答：[携帯電話番号によるユーザー照会](/ja/open/development/query-users-by-phone-number) API を呼び出した際に上記のエラーが発生する原因は、アプリのバージョンが古い（corpId と Corpsecret を使用して accessToken を取得するアプリ）可能性があります。

解決方法：新しいアプリを作成して取得する必要があります。

## ユーザー作成を呼び出すと `errmsg システムビジー` というエラーが発生する

回答：[ユーザー作成](/ja/open/development/user-information-creation) API を呼び出した際に上記のエラーが発生する原因は次のとおりです。

企業の毎週の社員追加人数上限を超過しているか、企業の追加人数上限を超過している可能性があります。

## ユーザー作成を呼び出すと `errcode 60103 携帯電話番号が不正です` というエラーが発生する

回答：[ユーザー作成](/ja/open/development/user-information-creation) API を呼び出した際に上記のエラーが発生する原因には、以下のような点が含まれますが、これらに限定されません。

* DingTalk で設定された企業の地域が中国本土以外で、携帯電話番号が中国本土の場合は、+86-xxxxxx を使用してください。
* DingTalk で設定された企業の地域が中国本土で、携帯電話番号が中国本土以外の場合は、+86-xxxxxx を使用してください。

## ユーザー作成を呼び出すと「errcode: 40103, errmsg: 招待を送信しました。相手が承認後に組織に参加できます」が返される

回答：[ユーザー作成](/ja/open/development/user-information-creation) API を呼び出してユーザーを組織に招待する際に上記の返却情報が表示される原因には、以下のような状況が含まれますが、これらに限定されません。

* 安全ルールに該当：ある社員がすでに認証企業 A に所属している場合、B 企業がその社員を追加すると上記のお知らせが表示されます。クライアントサイドでチーム招待を検索するか、連絡先画面で該当する招待情報を確認し、適切に対応してください。
* 招待されたユーザーが DingTalk モバイルクライアントの「マイ - 設定 - プライバシー - チームとメンバー」で「チームが私を追加する際に認証が必要」を有効化している場合。有効化後は、クライアントサイドでチーム招待を検索するか、連絡先画面で該当する招待情報を確認し、適切に対応してください。

<Warning>
  ユーザーが承認して企業に正常に参加した後、当日中に企業が当該ユーザーを削除した場合、削除後 24 時間以内に再度 API を呼び出して当該ユーザーを招待しても、上記のエラーメッセージが返されます。
</Warning>

## 外部連絡先の追加を呼び出すと `errmsg システムビジー errcode 40001` というエラーが発生する

回答：[外部連絡先の追加](/ja/open/development/add-enterprise-external-contacts)を呼び出した際に上記のエラーが発生する原因は、企業が外部連絡先内にカスタムフィールドを追加し、必須に設定している可能性があります。このカスタムフィールドの必須オプションを「いいえ」に変更するか、外部連絡先を追加する際にこのフィールド情報を追加してください。

## ユーザー個人連絡先情報取得 API を呼び出すと `Forbidden.AccessDenied.AccessTokenPermissionDenied この API を呼び出す権限がありません` というエラーが発生する

回答：[ユーザー連絡先プロフィールの取得](/ja/open/development/dingtalk-retrieve-user-information) API を呼び出した際に上記のエラーが発生する原因には、以下のような点が含まれますが、これらに限定されません。

* 権限の問題：「連絡先プロフィール読み取り権限」と「個人携帯電話番号情報」が申請済みであるかを確認する必要があります。

* API 認証情報 accessToken の誤り：当該 API の権限付与認証情報は個人ユーザーの accessToken です。渡された accessToken が誤っている場合も上記のエラーが発生します。個人ユーザーの accessToken の取得手順は次のとおりです。

  **ステップ 1**：authCode を取得します。ブラウザで構築したログイン権限付与ページの URL にアクセスします：[https://login.dingtalk.io/oauth2/auth?redirect\_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb（例であり固定](https://login.dingtalk.io/oauth2/auth?redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb（例であり固定) URI ではありません） // 権限付与の承認／拒否後のコールバック URL。開発者プラットフォームの対応するアプリの「ログインと共有 - コールバックドメイン」に追加されていることを確認してください。\&response\_type=code // 固定値は code。権限付与承認後に authCode を返します。

  \&client\_id=dingbbbbbbb // アプリ appkey

  \&scope=openid%2Bcorpid

  \&state=dddd

  \&prompt=consent

  ユーザーがクリックして権限付与を行うと、[https://www.aaaaa.com/a/b?authCode=xxxx\&state=dddd](https://www.aaaaa.com/a/b?authCode=xxxx\&state=dddd) にリダイレクトされ、この URL から authCode を取得できます。

  **ステップ 2**：取得した authCode を使い、[ユーザートークンの取得](/ja/open/development/obtain-user-token)を呼び出して個人ユーザーの accessToken を取得します。詳細は[ログインユーザーのアクセス認証情報の取得](/ja/open/development/obtain-identity-credentials)を参照してください。

## ユーザーの更新／削除／照会を呼び出すと `errcode 60121 該当ユーザーが見つかりません` というエラーが発生する

回答：上記のエラーが発生する原因には、以下のような状況が含まれますが、これらに限定されません。

* 渡されたパラメータ userId（ユーザーの企業内での一意識別子）と渡されたパラメータ access\_token（サーバー API アクセス認証情報）が対応するアプリが同一の企業内にない。
* 渡されたパラメータ userId（ユーザーの企業内での一意識別子）のユーザーが離職済み状態または入社待ち状態である。
* 企業が当該ユーザーを招待後、ユーザーがまだ企業への参加を承認していないため。

## 部門詳細取得を呼び出すと `errcode 40009 不正な部門 id` というエラーが発生する

回答：[部門詳細の取得](/ja/open/development/query-department-details0-v2) API を呼び出した際に上記のエラーが発生する原因は次のとおりです。

渡されたパラメータ dept\_id が -7（-7 は家校連絡先の部門 ID）の場合です。家校連絡先 dept\_id=-7 は連絡先管理シーンのドキュメントでの呼び出しをサポートしていません。

## ユーザー情報更新を呼び出すと `errcode 12150 スマート人事の職位管理が有効化済みです` というエラーが発生する

回答：[ユーザー情報の更新](/ja/open/development/user-information-update) API を呼び出した際に上記のエラーが発生する原因は次のとおりです。

スマート人事の職位管理が有効化されているシーンでは、ユーザー情報の職位（title）または部門（deptid）を更新する必要がある場合、スマート人事の社員異動に基づいて更新する必要があります。
