> ## 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.

# unionId からユーザー ID を取得する

> 本 API を呼び出して、unionId からユーザー ID を取得します。

# unionId からユーザー ID を取得する

## API 呼び出し説明

unionId は、現在の開発者の企業アカウント範囲内における社員の一意の識別子で、システムにより生成されます。

* 同一の企業社員であっても、異なる開発者の企業アカウント下では unionId は異なります。
* 同一の開発者の企業アカウント下では、unionId は一意かつ不変です。例えば、同一のサービスプロバイダーが開発した複数のアプリや、QRコードでログインなどのシナリオにおける複数の App アカウントの場合などです。

## リクエスト

| **基本情報**      |                                                                                                      |
| ------------- | ---------------------------------------------------------------------------------------------------- |
| HTTP URL      | [https://api.dingtalk.io/topapi/user/getbyunionid](https://api.dingtalk.io/topapi/user/getbyunionid) |
| HTTP Method   | POST                                                                                                 |
| サポートされるアプリタイプ | appType-社内アプリ appType-サードパーティ社内アプリ                                                                   |
| 権限要件          | permission-qyapi\_get\_member-ユーザー情報の読み取り権限                                                          |

### クエリパラメータ

| 名前            | タイプ    | 必須 | 例        | 説明                                                                                                                                                                                                                                                                                                  |
| ------------- | ------ | -- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| access\_token | String | はい | be3Fxxxx | 本 API を呼び出すアプリ認証情報。  **説明**  **サイレントログイン方式**で取得した unionId の場合、サイレントログインで取得した token を使用して本 API を呼び出すことはできません。下記の API を使用して再取得する必要があります。   - 社内アプリの場合、[社内アプリの access\_token を取得する](/ja/open/development/obtain-orgapp-token) API で取得します。 - サードパーティ社内アプリの場合、サードパーティ企業の access\_token を取得する API で取得します。 |

### リクエストボディ

| 名前      | タイプ    | 必須 | 例                  | 説明                                                                                                                                                                                             |
| ------- | ------ | -- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| unionid | String | はい | z21HjQliSzpw0Yxxxx | 現在の開発者の企業アカウント範囲内における社員の一意の識別子で、システムにより生成され、変更されることはありません。[サイレントログインコードを使用してユーザー情報を取得する](/ja/open/development/obtain-the-userid-of-a-user-by-using-the-log-free) API を呼び出すことで unionId を取得できます。 |

### リクエスト例

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/user/getbyunionid" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=6348d21e-fb41-4745-a214-95bcf8c118f0' \
-d 'unionid=z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ'
```

Java

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/user/getbyunionid");
OapiUserGetbyunionidRequest req = new OapiUserGetbyunionidRequest();
req.setUnionid("z21HjQliSzpw0Yxxxxxx");
OapiUserGetbyunionidResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
```

Python

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import dingtalk.api

req=dingtalk.api.OapiUserGetbyunionidRequest("https://api.dingtalk.io/topapi/user/getbyunionid")
req.unionid="z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ"
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
```

PHP

```php theme={"theme":{"light":"github-light","dark":"github-dark"}}
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiUserGetbyunionidRequest;
$req->setUnionid("z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ");
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/user/getbyunionid");
```

C#

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/user/getbyunionid");
OapiUserGetbyunionidRequest req = new OapiUserGetbyunionidRequest();
req.Unionid = "z21HjQliSzpw0YWCNxmii6u2Os62cZ62iSZ";
OapiUserGetbyunionidResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## レスポンス

### レスポンスボディ

| 名前            | タイプ                      | 例            | 説明                                        |
| ------------- | ------------------------ | ------------ | ----------------------------------------- |
| request\_id   | String                   | zcqi5450rpit | リクエスト ID。                                 |
| errcode       | Number                   | 0            | リターンコード。                                  |
| errmsg        | String                   | ok           | リターンコードの説明。                               |
| result        | UserGetByUnionIdResponse |              | 返却結果。                                     |
| contact\_type | Number                   | 0            | 連絡先タイプ:   - **0**: 社内社員 - **1**: 企業の外部連絡先 |
| userid        | String                   | zhangsan     | ユーザーの ユーザー ID。                            |

### レスポンスボディ例

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode":"0",
  "errmsg":"ok",
  "result":{
   "contact_type":"0",
   "userid":"zhangsan"
  },
  "request_id": "zcqi5450rpit"
}
```

### エラーコード

本 API の呼び出し時にエラーが発生した場合は、エラーメッセージをもとに[グローバルエラーコード](/ja/open/development/server-api-error-codes-1)ドキュメントから解決方法を確認してください。

| エラーコード（errcode） | エラーコードの説明（errmsg） | 解決方法                  |
| --------------- | ----------------- | --------------------- |
| 60121           | 該当する社員が見つかりません    | unionId が正しいか確認してください |
| 400002          | 無効なパラメータ          | unionId が正しいか確認してください |
| -1              | システムビジー           | 後で再度お試しください           |
