Request
Basic information
| Field | Value |
|---|---|
| HTTP URL | https://api.dingtalk.io/v1.0/im/group/update |
| HTTP Method | POST |
| Supported app types | appType-Internal app |
| Required permissions | permission-qyapi_chat_manage-DingTalk group basic information management permission |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
| x-acs-dingtalk-access-token | String | Yes | The access credential for calling this API. Obtain it through the Get the access token of an internal app API. |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
| chatid | String | Yes | The group chat ID. Obtain it from the chatid parameter returned by the Create a group chat API. The chatid obtained by calling the frontend JSAPI is not supported. |
| name | String | No | The group name. Length: 1 to 20 characters. |
| owner | String | No | The userId of the group owner. Obtain the userId through the Query users by phone number API. The user must be one of the members in the useridlist of the chat. |
| ownerType | String | No | The group owner type. - emp: Organization employee - ext: External contacts |
| add_useridlist | Array of String | No | The userId list. |
| del_useridlist | Array of String | No | The userId list. |
| add_extidlist | Array of String | No | The unionId list. Obtain it through the Query user details API. |
| del_extidlist | Array of String | No | The unionId list. Obtain it through the Query user details API. |
| icon | String | No | The mediaId of the group profile photo. Obtain the media_id parameter through the Upload media files API. |
| managementOptions | Object | No | The group attributes. |
| mentionAllAuthority | Integer | No | The usage scope of @all. - 0 (default): All members can use @all. - 1: Only the group owner can use @all. |
| showHistoryType | Integer | No | Whether new members can view the last 100 historical chats. - 1: Allowed. - 0: Not allowed. If not specified, new members cannot view historical chats. |
| validationType | Integer | No | Whether validation is required to join the group. - 0 (default): No validation. - 1: Validation required. |
| searchable | Integer | No | Whether the group can be searched. - 0 (default): Not searchable. - 1: Searchable. |
| chatBannedType | Integer | No | Whether to enable mute members for the group. - 0 (default): Not muted. - 1: Mute All. |
| managementType | Integer | No | The group management type. - 0 (default): All members can manage. - 1: Only the group owner can manage. |
Request example
HTTPPOST /v1.0/im/group/update HTTP/1.1
Host:api.dingtalk.io
x-acs-dingtalk-access-token:6d1bxxxx
Content-Type:application/json
{
"chatid" : "chatxxxx",
"name" : "All-staff Chat.",
"owner" : "04201724372xxxx",
"ownerType" : "emp",
"add_useridlist" : [ "userid1" ],
"del_useridlist" : [ "userid1" ],
"add_extidlist" : [ "unionId" ],
"del_extidlist" : [ "unionId" ],
"icon" : "@mediaId",
"managementOptions" : {
"mentionAllAuthority" : 0,
"showHistoryType" : 0,
"validationType" : 0,
"searchable" : 0,
"chatBannedType" : 0,
"managementType" : 0
}
}
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>Initialize the account Client with a Token</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.dingtalkim_1_0.Client createClient() throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
config.protocol = "https";
config.regionId = "central";
return new com.aliyun.dingtalkim_1_0.Client(config);
}
public static void main(String[] args_) throws Exception {
com.aliyun.dingtalkim_1_0.Client client = Sample.createClient();
com.aliyun.dingtalkim_1_0.models.UpdateGroupHeaders updateGroupHeaders = new com.aliyun.dingtalkim_1_0.models.UpdateGroupHeaders();
updateGroupHeaders.xAcsDingtalkAccessToken = "<your access token>";
com.aliyun.dingtalkim_1_0.models.UpdateGroupRequest.UpdateGroupRequestManagementOptions managementOptions = new com.aliyun.dingtalkim_1_0.models.UpdateGroupRequest.UpdateGroupRequestManagementOptions()
.setMentionAllAuthority(0)
.setShowHistoryType(0)
.setValidationType(0)
.setSearchable(0)
.setChatBannedType(0)
.setManagementType(0);
com.aliyun.dingtalkim_1_0.models.UpdateGroupRequest updateGroupRequest = new com.aliyun.dingtalkim_1_0.models.UpdateGroupRequest()
.setChatid("chatxxxx")
.setName("All-staff Chat.")
.setOwner("04201724372xxxx")
.setOwnerType("emp")
.setAddUseridlist(java.util.Arrays.asList(
"userid1"
))
.setDelUseridlist(java.util.Arrays.asList(
"userid1"
))
.setAddExtidlist(java.util.Arrays.asList(
"unionId"
))
.setDelExtidlist(java.util.Arrays.asList(
"unionId"
))
.setIcon("@mediaId")
.setManagementOptions(managementOptions);
try {
client.updateGroupWithOptions(updateGroupRequest, updateGroupHeaders, new com.aliyun.teautil.models.RuntimeOptions());
} catch (TeaException err) {
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err contains code and message attributes, which help locate the issue during development
}
} catch (Exception _err) {
TeaException err = new TeaException(_err.getMessage(), _err);
if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
// err contains code and message attributes, which help locate the issue during development
}
}
}
}
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import os
import sys
import json
from typing import List
from alibabacloud_dingtalk.im_1_0.client import Client as dingtalkim_1_0Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_dingtalk.im_1_0 import models as dingtalkim__1__0_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_tea_util.client import Client as UtilClient
class Sample:
def __init__(self):
pass
@staticmethod
def create_client() -> dingtalkim_1_0Client:
"""
Initialize the account Client with a Token
@return: Client
@throws Exception
"""
config = open_api_models.Config()
config.protocol = 'https'
config.region_id = 'central'
return dingtalkim_1_0Client(config)
@staticmethod
def main(
args: List[str],
) -> None:
client = Sample.create_client()
update_group_headers = dingtalkim__1__0_models.UpdateGroupHeaders()
update_group_headers.x_acs_dingtalk_access_token = '<your access token>'
management_options = dingtalkim__1__0_models.UpdateGroupRequestManagementOptions(
mention_all_authority=0,
show_history_type=0,
validation_type=0,
searchable=0,
chat_banned_type=0,
management_type=0
)
update_group_request = dingtalkim__1__0_models.UpdateGroupRequest(
chatid='chatxxxx',
name='All-staff Chat.',
owner='04201724372xxxx',
owner_type='emp',
add_useridlist=[
'userid1'
],
del_useridlist=[
'userid1'
],
add_extidlist=[
'unionId'
],
del_extidlist=[
'unionId'
],
icon='@mediaId',
management_options=management_options
)
try:
client.update_group_with_options(update_group_request, update_group_headers, util_models.RuntimeOptions())
except Exception as err:
if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
# err contains code and message attributes, which help locate the issue during development
pass
@staticmethod
async def main_async(
args: List[str],
) -> None:
client = Sample.create_client()
update_group_headers = dingtalkim__1__0_models.UpdateGroupHeaders()
update_group_headers.x_acs_dingtalk_access_token = '<your access token>'
management_options = dingtalkim__1__0_models.UpdateGroupRequestManagementOptions(
mention_all_authority=0,
show_history_type=0,
validation_type=0,
searchable=0,
chat_banned_type=0,
management_type=0
)
update_group_request = dingtalkim__1__0_models.UpdateGroupRequest(
chatid='chatxxxx',
name='All-staff Chat.',
owner='04201724372xxxx',
owner_type='emp',
add_useridlist=[
'userid1'
],
del_useridlist=[
'userid1'
],
add_extidlist=[
'unionId'
],
del_extidlist=[
'unionId'
],
icon='@mediaId',
management_options=management_options
)
try:
await client.update_group_with_options_async(update_group_request, update_group_headers, util_models.RuntimeOptions())
except Exception as err:
if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
# err contains code and message attributes, which help locate the issue during development
pass
if __name__ == '__main__':
Sample.main(sys.argv[1:])
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace AlibabaCloud\SDK\Sample;
use AlibabaCloud\SDK\Dingtalk\Vim_1_0\Dingtalk;
use \Exception;
use AlibabaCloud\Tea\Exception\TeaError;
use AlibabaCloud\Tea\Utils\Utils;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\SDK\Dingtalk\Vim_1_0\Models\UpdateGroupHeaders;
use AlibabaCloud\SDK\Dingtalk\Vim_1_0\Models\UpdateGroupRequest\managementOptions;
use AlibabaCloud\SDK\Dingtalk\Vim_1_0\Models\UpdateGroupRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
class Sample {
/**
* Initialize the account Client with a Token
* @return Dingtalk Client
*/
public static function createClient(){
$config = new Config([]);
$config->protocol = "https";
$config->regionId = "central";
return new Dingtalk($config);
}
/**
* @param string[] $args
* @return void
*/
public static function main($args){
$client = self::createClient();
$updateGroupHeaders = new UpdateGroupHeaders([]);
$updateGroupHeaders->xAcsDingtalkAccessToken = "<your access token>";
$managementOptions = new managementOptions([
"mentionAllAuthority" => 0,
"showHistoryType" => 0,
"validationType" => 0,
"searchable" => 0,
"chatBannedType" => 0,
"managementType" => 0
]);
$updateGroupRequest = new UpdateGroupRequest([
"chatid" => "chatxxxx",
"name" => "All-staff Chat.",
"owner" => "04201724372xxxx",
"ownerType" => "emp",
"addUseridlist" => [
"userid1"
],
"delUseridlist" => [
"userid1"
],
"addExtidlist" => [
"unionId"
],
"delExtidlist" => [
"unionId"
],
"icon" => "@mediaId",
"managementOptions" => $managementOptions
]);
try {
$client->updateGroupWithOptions($updateGroupRequest, $updateGroupHeaders, new RuntimeOptions([]));
}
catch (Exception $err) {
if (!($err instanceof TeaError)) {
$err = new TeaError([], $err->getMessage(), $err->getCode(), $err);
}
if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) {
// err contains code and message attributes, which help locate the issue during development
}
}
}
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
require_once $path;
}
Sample::main(array_slice($argv, 1));
package main
import (
"encoding/json"
"strings"
"fmt"
"os"
util "github.com/alibabacloud-go/tea-utils/v2/service"
dingtalkim_1_0 "github.com/alibabacloud-go/dingtalk/im_1_0"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
"github.com/alibabacloud-go/tea/tea"
)
// Description:
//
// Initialize the account Client with a Token
//
// @return Client
//
// @throws Exception
func CreateClient () (_result *dingtalkim_1_0.Client, _err error) {
config := &openapi.Config{}
config.Protocol = tea.String("https")
config.RegionId = tea.String("central")
_result = &dingtalkim_1_0.Client{}
_result, _err = dingtalkim_1_0.NewClient(config)
return _result, _err
}
func _main (args []*string) (_err error) {
client, _err := CreateClient()
if _err != nil {
return _err
}
updateGroupHeaders := &dingtalkim_1_0.UpdateGroupHeaders{}
updateGroupHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
managementOptions := &dingtalkim_1_0.UpdateGroupRequestManagementOptions{
MentionAllAuthority: tea.Int32(0),
ShowHistoryType: tea.Int32(0),
ValidationType: tea.Int32(0),
Searchable: tea.Int32(0),
ChatBannedType: tea.Int32(0),
ManagementType: tea.Int32(0),
}
updateGroupRequest := &dingtalkim_1_0.UpdateGroupRequest{
Chatid: tea.String("chatxxxx"),
Name: tea.String("All-staff Chat."),
Owner: tea.String("04201724372xxxx"),
OwnerType: tea.String("emp"),
AddUseridlist: []*string{tea.String("userid1")},
DelUseridlist: []*string{tea.String("userid1")},
AddExtidlist: []*string{tea.String("unionId")},
DelExtidlist: []*string{tea.String("unionId")},
Icon: tea.String("@mediaId"),
ManagementOptions: managementOptions,
}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
_, _err = client.UpdateGroupWithOptions(updateGroupRequest, updateGroupHeaders, &util.RuntimeOptions{})
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var err = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
err = _t
} else {
err.Message = tea.String(tryErr.Error())
}
if !tea.BoolValue(util.Empty(err.Code)) && !tea.BoolValue(util.Empty(err.Message)) {
// err contains code and message attributes, which help locate the issue during development
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}
'use strict';
// This file is auto-generated, don't edit it
const Util = require('@alicloud/tea-util');
const dingtalkim_1_0 = require('@alicloud/dingtalk/im_1_0');
const OpenApi = require('@alicloud/openapi-client');
const Tea = require('@alicloud/tea-typescript');
class Client {
/**
* Initialize the account Client with a Token
* @return Client
* @throws Exception
*/
static createClient() {
let config = new OpenApi.Config({ });
config.protocol = 'https';
config.regionId = 'central';
return new dingtalkim_1_0.default(config);
}
static async main(args) {
let client = Client.createClient();
let updateGroupHeaders = new dingtalkim_1_0.UpdateGroupHeaders({ });
updateGroupHeaders.xAcsDingtalkAccessToken = '<your access token>';
let managementOptions = new dingtalkim_1_0.UpdateGroupRequestManagementOptions({
mentionAllAuthority: 0,
showHistoryType: 0,
validationType: 0,
searchable: 0,
chatBannedType: 0,
managementType: 0,
});
let updateGroupRequest = new dingtalkim_1_0.UpdateGroupRequest({
chatid: 'chatxxxx',
name: 'All-staff Chat.',
owner: '04201724372xxxx',
ownerType: 'emp',
addUseridlist: [
'userid1'
],
delUseridlist: [
'userid1'
],
addExtidlist: [
'unionId'
],
delExtidlist: [
'unionId'
],
icon: '@mediaId',
managementOptions: managementOptions,
});
try {
await client.updateGroupWithOptions(updateGroupRequest, updateGroupHeaders, new Util.RuntimeOptions({ }));
} catch (err) {
if (!Util.default.empty(err.code) && !Util.default.empty(err.message)) {
// err contains code and message attributes, which help locate the issue during development
}
}
}
}
exports.Client = Client;
Client.main(process.argv.slice(2));
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
namespace AlibabaCloud.SDK.Sample
{
public class Sample
{
/// <term><b>Description:</b></term>
/// <description>
/// <para>Initialize the account Client with a Token</para>
/// </description>
///
/// <returns>
/// Client
/// </returns>
///
/// <term><b>Exception:</b></term>
/// Exception
public static AlibabaCloud.SDK.Dingtalkim_1_0.Client CreateClient()
{
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config();
config.Protocol = "https";
config.RegionId = "central";
return new AlibabaCloud.SDK.Dingtalkim_1_0.Client(config);
}
public static void Main(string[] args)
{
AlibabaCloud.SDK.Dingtalkim_1_0.Client client = CreateClient();
AlibabaCloud.SDK.Dingtalkim_1_0.Models.UpdateGroupHeaders updateGroupHeaders = new AlibabaCloud.SDK.Dingtalkim_1_0.Models.UpdateGroupHeaders();
updateGroupHeaders.XAcsDingtalkAccessToken = "<your access token>";
AlibabaCloud.SDK.Dingtalkim_1_0.Models.UpdateGroupRequest.UpdateGroupRequestManagementOptions managementOptions = new AlibabaCloud.SDK.Dingtalkim_1_0.Models.UpdateGroupRequest.UpdateGroupRequestManagementOptions
{
MentionAllAuthority = 0,
ShowHistoryType = 0,
ValidationType = 0,
Searchable = 0,
ChatBannedType = 0,
ManagementType = 0,
};
AlibabaCloud.SDK.Dingtalkim_1_0.Models.UpdateGroupRequest updateGroupRequest = new AlibabaCloud.SDK.Dingtalkim_1_0.Models.UpdateGroupRequest
{
Chatid = "chatxxxx",
Name = "All-staff Chat.",
Owner = "04201724372xxxx",
OwnerType = "emp",
AddUseridlist = new List<string>
{
"userid1"
},
DelUseridlist = new List<string>
{
"userid1"
},
AddExtidlist = new List<string>
{
"unionId"
},
DelExtidlist = new List<string>
{
"unionId"
},
Icon = "@mediaId",
ManagementOptions = managementOptions,
};
try
{
client.UpdateGroupWithOptions(updateGroupRequest, updateGroupHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
}
catch (TeaException err)
{
if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
{
// err contains code and message attributes, which help locate the issue during development
}
}
catch (Exception _err)
{
TeaException err = new TeaException(new Dictionary<string, object>
{
{ "message", _err.Message }
});
if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
{
// err contains code and message attributes, which help locate the issue during development
}
}
}
}
}
Response
Response body
| Name | Type | Description |
|---|---|---|
| success | Boolean | Whether the operation succeeded. |
Response body example
HTTP/1.1 200 OK
Content-Type:application/json
{
"success" : true
}
Error codes
If an error is returned when you call this API, find the solution in the Global error codes document based on the error message.| HttpCode | Error code | Error message | Description |
|---|---|---|---|
| 400 | parameter.invalid | Invalid input parameter | Pass in the required parameters as specified by the API. |
| 400 | permession.checkFailed | Permission check failed | Permission check failed. |
| 400 | permession.checkFailed | The group owner is not within the app visibility scope | The group owner is not within the app visibility scope. |
| 500 | system.error | Try again. If the issue persists, submit a ticket. | Try again. If the issue persists, submit a ticket. |