API 呼び出し説明
本 API を呼び出すことで、一般アカウントのユーザー情報、または企業アカウントのユーザー情報を更新できます。呼び出し時のパラメータ使用に多くの違いがあるため、開発者が確認しやすいように、新しいユーザーのアカウントタイプに応じて分割・最適化しています。- 一般ユーザー情報の更新については、本ドキュメントをご参照ください。
- 企業アカウントユーザー情報の更新については、企業アカウントユーザー情報を更新する をご参照ください。
リクエスト
| 基本情報 | |
|---|---|
| HTTP URL | https://api.dingtalk.io/topapi/v2/user/update |
| HTTP Method | POST |
| サポートするアプリタイプ | appType-社内アプリ |
| 必要な権限 | permission-qyapi_manage_addresslist-連絡先データ管理権限 |
クエリパラメータ
| 名前 | タイプ | 必須 | 例 | 説明 |
|---|---|---|---|---|
| access_token | String | はい | be3Fxxxx | この API を呼び出すためのアプリ認証情報。社内アプリの access_token 取得 API から取得します。 |
リクエストボディ
| 名前 | タイプ | 必須 | 例 | 説明 |
|---|---|---|---|---|
| userid | String | はい | user123 | 社員の userId。 |
| name | String | いいえ | 山田太郎 | 社員名。最大 80 文字。 |
| hide_mobile | Boolean | いいえ | false | 電話番号を非表示にするかどうか。 - true:非表示。 電話番号を非表示にすると、プロフィールページでは電話番号が非表示になりますが、引き続き DING の送信や DingTalk 無料ビジネス通話の発信が可能です。 - false:非表示にしない。 |
| telephone | String | いいえ | 010-86123456-2345 | 内線番号。最大 50 文字。 説明 内線番号は一意であり、社内で重複することはできません。 |
| job_number | String | いいえ | 4 | 社員の社員番号。最大 50 文字。 |
| manager_userid | String | いいえ | 0001 | 直属上司の userId。 |
| title | String | いいえ | 技術ディレクター | 職位。最大 200 文字。 |
| String | いいえ | test@xxx.com | 社員のメール。最大 50 文字。 説明 社員のメールは一意であり、社内で重複することはできません。 | |
| org_email | String | いいえ | test@xxx.com | 社員のエンタープライズメール。 説明 以下の条件を満たした場合のみ、このフィールドが有効になります:社員のエンタープライズメールが有効化されていること。 |
| work_place | String | いいえ | 東京オフィス | 勤務地。最大 100 文字。 |
| remark | String | いいえ | 表示名情報 | 表示名。最大 2000 文字。 |
| dept_id_list | String | いいえ | ”2,3,4” | 所属部門 ID リスト。 |
| dept_order_list | DeptOrder[] | いいえ | 社員の対応する部門での並び替え。 | |
| dept_id | Number | いいえ | 2 | 部門 ID。 |
| order | Number | いいえ | 1 | 社員の部門内での並び替え。数値が大きいほど上位に表示されます。 |
| extension | String | いいえ | {"趣味":"旅行","年齢":"24"} | 拡張属性。最大 2000 文字。 説明 - モバイルでは最大 10 個の拡張属性しか表示できません。 - 社員に 10 個の拡張属性フィールドが設定されている場合、更新時は拡張属性フィールドの値が変わらなくても、10 個すべての拡張属性フィールドを渡す必要があります。1 個のみ渡した場合、残りの 9 個のフィールドはすべてクリアされます。 - このパラメータを使用する前に、DingTalk 管理コンソール > 連絡先 > 社内連絡先設定 > メンバーフィールド管理 で当該属性を追加する必要があります。 - このフィールドの値にはリンクタイプの入力が可能で、リンクは変数ワイルドカードによる自動置換にも対応します。現在サポートされているワイルドカードは userid と corpid です。例:[座席番号アドレス](http://www.dingtalk.io?userid=#userid#&corpid=#corpid#)。 |
| ext_attrs_update_mode | Number | いいえ | 1 | 拡張属性カスタムフィールドの更新モード。 - 0:上書き方式 - 1:追加方式 デフォルトは上書きです。 |
| senior_mode | Boolean | いいえ | false | 役員モードを有効にするかどうか。デフォルト値は false。 - true:有効。 説明 - 有効にすると、電話番号がすべての社員に対して非表示になります。 - 一般社員は DING の送信や DingTalk ビジネス通話の発信ができなくなります。 - 役員同士では DING の送信や DingTalk ビジネス通話の発信が可能です。 - false:無効。 |
| hired_date | Number | いいえ | 1597573616828 | 入社日。UNIX タイムスタンプ、ミリ秒単位。 |
| language | String | いいえ | zh_CN | 連絡先の言語。 - zh_CN:中国語(デフォルト)。 - en_US:英語。 |
| force_update_fields | String | いいえ | manager_userid | 強制更新するフィールド。指定したフィールドをクリアすることが可能で、複数のフィールドはカンマで区切ります。現在サポートされているフィールドは manager_userid です。 |
| dept_position_list | DeptPosition[] | いいえ | 部門内の在任情報。 | |
| extension_i18n | Json | いいえ | {"趣味": {"zh_CN": "旅游", "en_US": "travel", "aJP": "旅行"}} | 拡張属性の国際化値。 |
リクエスト例
curl -X POST "https://api.dingtalk.io/topapi/v2/user/update" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=c6c3c34d-23dd-4da7-9901-0af1ebceaf80' \
-d 'name=%E5%B1%B1%E7%94%B0%E5%A4%AA%E9%83%8E' \
-d 'telephone=010-86123456-2345' \
-d 'hide_mobile=false' \
-d 'userid=zhangsan'
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/v2/user/update");
OapiV2UserUpdateRequest req = new OapiV2UserUpdateRequest();
req.setUserid("zhangsan");
req.setName("山田太郎");
req.setHideMobile(false);
req.setTelephone("010-86123456-2345");
req.setJobNumber("4");
req.setManagerUserid("0001");
req.setTitle("技術ディレクター");
req.setEmail("test@xxx.com");
req.setOrgEmail("test@xxx.com");
req.setWorkPlace("東京オフィス");
req.setRemark("備考備考");
req.setDeptIdList("2,3,4");
List<DeptOrder> list2 = new ArrayList<DeptOrder>();
DeptOrder obj3 = new DeptOrder();
list2.add(obj3);
obj3.setDeptId(2L);
obj3.setOrder(1L);
req.setDeptOrderList(list2);
req.setExtension("{\"趣味\":\"旅行\",\"年齢\":\"24\"}");
req.setSeniorMode(false);
req.setHiredDate(1597573616828L);
req.setLanguage("zh_CN");
req.setForceUpdateFields("manager_userid");
OapiV2UserUpdateResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
import dingtalk.api
req=dingtalk.api.OapiV2UserUpdateRequest("https://api.dingtalk.io/topapi/v2/user/update")
req.userid="zhangsan"
req.name="山田太郎"
req.hide_mobile=false
req.telephone="010-86123456-2345"
try:
resp= req.getResponse(access_token)
print(resp)
except Exception,e:
print(e)
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');
$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiV2UserUpdateRequest;
$req->setUserid("zhangsan");
$req->setName("山田太郎");
$req->setHideMobile("false");
$req->setTelephone("010-86123456-2345");
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/v2/user/update");
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/v2/user/update");
OapiV2UserUpdateRequest req = new OapiV2UserUpdateRequest();
req.Userid = "zhangsan";
req.Name = "山田太郎";
req.Mobile = "13800138000";
req.HideMobile = false;
OapiV2UserUpdateResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
レスポンス
レスポンスボディ
| 名前 | タイプ | 例 | 説明 |
|---|---|---|---|
| errcode | Number | 0 | 戻りコード。0 は成功を表します。 |
| errmsg | String | ユーザーが見つかりません | 呼び出しに失敗した場合に返されるエラーメッセージ。 |
レスポンスボディ例
{
"errcode": 0,
"request_id": "55o5i31j4cg8"
}