查询群成员

调用本接口查询群成员信息。

本接口适用于需要获取群成员信息的场景,如在群管理界面展示群成员列表、统计群成员数量等,具体示例如下图所示:

说明

支持以下场景使用:

  • 基于群模板创建的群

    • 企业内部应用,详情参见创建群
    • 第三方企业应用,详情参见创建群
  • 安装群聊酷应用的群。

权限

要调用此API,需要以下权限之一。

应用类型

是否支持

权限

API Explorer调试

企业内部应用 支持 钉钉群基础信息管理权限 API Explorer
第三方企业应用 支持 钉钉群基础信息管理权限 API Explorer
第三方个人应用 暂不支持 暂不支持 暂不支持

请求方法

POST /v1.0/im/sceneGroups/members/batchQuery HTTP/1.1
Host:api.dingtalk.com
x-acs-dingtalk-access-token:String
Content-Type:application/json

{
  "openConversationId" : "String",
  "coolAppCode" : "String",
  "maxResults" : Long,
  "nextToken" : "String"
}

Header参数

名称

类型

是否必填

描述

x-acs-dingtalk-access-token

String

调用该接口的访问凭证。

Body参数

名称

类型

是否必填

描述

openConversationId

String

群ID:

  • 基于群模板创建的群。

    • 企业内部应用,调用创建群接口获取open_conversation_id参数值。

    • 第三方企业应用,调用创建群接口获取open_conversation_id参数值。

  • 安装群聊酷应用的群。

coolAppCode

String

群聊酷应用编码:

  • 基于群模板创建的群,不需要传入此参数。
  • 安装群聊酷应用的群,必须传入此参数。

maxResults

Long

分页大小。

说明

接口返回结果可能会大于或小于maxResults,以实际返回结果为准。如果群成员数量不超过1000,而直接一次性返回全部群成员;如果群成员数量大于1000,则按照分页大小分批次返回。

nextToken

String

分页游标,置空表示从首页开始查询。

返回参数

名称

类型

描述

success

Boolean

请求是否成功,true表示执行成功,否则表示失败。

memberUserIds

Array of String

群成员id。

hasMore

Boolean

是否还有更多数据。

nextToken

String

下一次请求的游标,若没有更多数据,则此参数为空。

示例

请求示例

POST /v1.0/im/sceneGroups/members/batchQuery HTTP/1.1
Host:api.dingtalk.com
x-acs-dingtalk-access-token:XXXXXXX
Content-Type:application/json

{
  "openConversationId" : "cidXXXXXXX",
  "coolAppCode" : "COOLAPP_XXXXX",
  "maxResults" : 200,
  "nextToken" : "XXXXX"
}
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;

import com.aliyun.tea.*;
import com.aliyun.teautil.*;
import com.aliyun.teautil.models.*;
import com.aliyun.dingtalkim_1_0.*;
import com.aliyun.dingtalkim_1_0.models.*;
import com.aliyun.teaopenapi.*;
import com.aliyun.teaopenapi.models.*;

public class Sample {

    /**
     * 使用 Token 初始化账号Client
     * @return Client
     * @throws Exception
     */
    public static com.aliyun.dingtalkim_1_0.Client createClient() throws Exception {
        Config config = new Config();
        config.protocol = "https";
        config.regionId = "central";
        return new com.aliyun.dingtalkim_1_0.Client(config);
    }

    public static void main(String[] args_) throws Exception {
        java.util.List<String> args = java.util.Arrays.asList(args_);
        com.aliyun.dingtalkim_1_0.Client client = Sample.createClient();
        BatchQueryGroupMemberHeaders batchQueryGroupMemberHeaders = new BatchQueryGroupMemberHeaders();
        batchQueryGroupMemberHeaders.xAcsDingtalkAccessToken = "<your access token>";
        BatchQueryGroupMemberRequest batchQueryGroupMemberRequest = new BatchQueryGroupMemberRequest()
                .setOpenConversationId("cidXXXXXXX")
                .setCoolAppCode("COOLAPP_XXXXX")
                .setMaxResults(200L)
                .setNextToken("XXXXX");
        try {
            client.batchQueryGroupMemberWithOptions(batchQueryGroupMemberRequest, batchQueryGroupMemberHeaders, new RuntimeOptions());
        } catch (TeaException err) {
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err 中含有 code 和 message 属性,可帮助开发定位问题
            }

        } 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 中含有 code 和 message 属性,可帮助开发定位问题
            }

        }        
    }
}
# -*- coding: utf-8 -*-
# This file is auto-generated, don't edit it. Thanks.
import sys

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:
        """
        使用 Token 初始化账号Client
        @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()
        batch_query_group_member_headers = dingtalkim__1__0_models.BatchQueryGroupMemberHeaders()
        batch_query_group_member_headers.x_acs_dingtalk_access_token = '<your access token>'
        batch_query_group_member_request = dingtalkim__1__0_models.BatchQueryGroupMemberRequest(
            open_conversation_id='cidXXXXXXX',
            cool_app_code='COOLAPP_XXXXX',
            max_results=200,
            next_token='XXXXX'
        )
        try:
            client.batch_query_group_member_with_options(batch_query_group_member_request, batch_query_group_member_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err 中含有 code 和 message 属性,可帮助开发定位问题
                pass

    @staticmethod
    async def main_async(
        args: List[str],
    ) -> None:
        client = Sample.create_client()
        batch_query_group_member_headers = dingtalkim__1__0_models.BatchQueryGroupMemberHeaders()
        batch_query_group_member_headers.x_acs_dingtalk_access_token = '<your access token>'
        batch_query_group_member_request = dingtalkim__1__0_models.BatchQueryGroupMemberRequest(
            open_conversation_id='cidXXXXXXX',
            cool_app_code='COOLAPP_XXXXX',
            max_results=200,
            next_token='XXXXX'
        )
        try:
            await client.batch_query_group_member_with_options_async(batch_query_group_member_request, batch_query_group_member_headers, util_models.RuntimeOptions())
        except Exception as err:
            if not UtilClient.empty(err.code) and not UtilClient.empty(err.message):
                # err 中含有 code 和 message 属性,可帮助开发定位问题
                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\BatchQueryGroupMemberHeaders;
use AlibabaCloud\SDK\Dingtalk\Vim_1_0\Models\BatchQueryGroupMemberRequest;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;

class Sample {

    /**
     * 使用 Token 初始化账号Client
     * @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();
        $batchQueryGroupMemberHeaders = new BatchQueryGroupMemberHeaders([]);
        $batchQueryGroupMemberHeaders->xAcsDingtalkAccessToken = "<your access token>";
        $batchQueryGroupMemberRequest = new BatchQueryGroupMemberRequest([
            "openConversationId" => "cidXXXXXXX",
            "coolAppCode" => "COOLAPP_XXXXX",
            "maxResults" => 200,
            "nextToken" => "XXXXX"
        ]);
        try {
            $client->batchQueryGroupMemberWithOptions($batchQueryGroupMemberRequest, $batchQueryGroupMemberHeaders, 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 中含有 code 和 message 属性,可帮助开发定位问题
            }
        }
    }
}
$path = __DIR__ . \DIRECTORY_SEPARATOR . '..' . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
if (file_exists($path)) {
    require_once $path;
}
Sample::main(array_slice($argv, 1));
// This file is auto-generated, don't edit it. Thanks.
package main

import (
  "os"
  util  "github.com/alibabacloud-go/tea-utils/service"
  dingtalkim_1_0  "github.com/alibabacloud-go/dingtalk/im_1_0"
  openapi  "github.com/alibabacloud-go/darabonba-openapi/client"
  "github.com/alibabacloud-go/tea/tea"
)


/**
 * 使用 Token 初始化账号Client
 * @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
  }

  batchQueryGroupMemberHeaders := &dingtalkim_1_0.BatchQueryGroupMemberHeaders{}
  batchQueryGroupMemberHeaders.XAcsDingtalkAccessToken = tea.String("<your access token>")
  batchQueryGroupMemberRequest := &dingtalkim_1_0.BatchQueryGroupMemberRequest{
    OpenConversationId: tea.String("cidXXXXXXX"),
    CoolAppCode: tea.String("COOLAPP_XXXXX"),
    MaxResults: tea.Int64(200),
    NextToken: tea.String("XXXXX"),
  }
  tryErr := func()(_e error) {
    defer func() {
      if r := tea.Recover(recover()); r != nil {
        _e = r
      }
    }()
    _, _err = client.BatchQueryGroupMemberWithOptions(batchQueryGroupMemberRequest, batchQueryGroupMemberHeaders, &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 中含有 code 和 message 属性,可帮助开发定位问题
    }

  }
  return _err
}


func main() {
  err := _main(tea.StringSlice(os.Args[1:]))
  if err != nil {
    panic(err)
  }
}
// This file is auto-generated, don't edit it
import Util, * as $Util from '@alicloud/tea-util';
import dingtalkim_1_0, * as $dingtalkim_1_0 from '@alicloud/dingtalk/im_1_0';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import * as $tea from '@alicloud/tea-typescript';


export default class Client {

  /**
   * 使用 Token 初始化账号Client
   * @return Client
   * @throws Exception
   */
  static createClient(): dingtalkim_1_0 {
    let config = new $OpenApi.Config({ });
    config.protocol = "https";
    config.regionId = "central";
    return new dingtalkim_1_0(config);
  }

  static async main(args: string[]): Promise<void> {
    let client = Client.createClient();
    let batchQueryGroupMemberHeaders = new $dingtalkim_1_0.BatchQueryGroupMemberHeaders({ });
    batchQueryGroupMemberHeaders.xAcsDingtalkAccessToken = "<your access token>";
    let batchQueryGroupMemberRequest = new $dingtalkim_1_0.BatchQueryGroupMemberRequest({
      openConversationId: "cidXXXXXXX",
      coolAppCode: "COOLAPP_XXXXX",
      maxResults: 200,
      nextToken: "XXXXX",
    });
    try {
      await client.batchQueryGroupMemberWithOptions(batchQueryGroupMemberRequest, batchQueryGroupMemberHeaders, new $Util.RuntimeOptions({ }));
    } catch (err) {
      if (!Util.empty(err.code) && !Util.empty(err.message)) {
        // err 中含有 code 和 message 属性,可帮助开发定位问题
      }

    }    
  }

}

Client.main(process.argv.slice(2));
// This file is auto-generated, don't edit it. Thanks.

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 
    {

        /**
         * 使用 Token 初始化账号Client
         * @return Client
         * @throws 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.BatchQueryGroupMemberHeaders batchQueryGroupMemberHeaders = new AlibabaCloud.SDK.Dingtalkim_1_0.Models.BatchQueryGroupMemberHeaders();
            batchQueryGroupMemberHeaders.XAcsDingtalkAccessToken = "<your access token>";
            AlibabaCloud.SDK.Dingtalkim_1_0.Models.BatchQueryGroupMemberRequest batchQueryGroupMemberRequest = new AlibabaCloud.SDK.Dingtalkim_1_0.Models.BatchQueryGroupMemberRequest
            {
                OpenConversationId = "cidXXXXXXX",
                CoolAppCode = "COOLAPP_XXXXX",
                MaxResults = 200,
                NextToken = "XXXXX",
            };
            try
            {
                client.BatchQueryGroupMemberWithOptions(batchQueryGroupMemberRequest, batchQueryGroupMemberHeaders, new AlibabaCloud.TeaUtil.Models.RuntimeOptions());
            }
            catch (TeaException err)
            {
                if (!AlibabaCloud.TeaUtil.Common.Empty(err.Code) && !AlibabaCloud.TeaUtil.Common.Empty(err.Message))
                {
                    // err 中含有 code 和 message 属性,可帮助开发定位问题
                }
            }
            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 中含有 code 和 message 属性,可帮助开发定位问题
                }
            }
        }


    }
}
// This file is auto-generated, don't edit it. Thanks.

#include <alibabacloud/dingtalkim__1__0.hpp>
#include <alibabacloud/open_api.hpp>
#include <boost/any.hpp>
#include <darabonba/core.hpp>
#include <darabonba/util.hpp>
#include <iostream>
#include <map>

using namespace std;

Alibabacloud_Dingtalkim_1_0::Client createClient() {
  shared_ptr<Alibabacloud_OpenApi::Config> config = make_shared<Alibabacloud_OpenApi::Config>();
  config->protocol = make_shared<string>("https");
  config->regionId = make_shared<string>("central");
  return Alibabacloud_Dingtalkim_1_0::Client(config);
}

int main(int argc, char *args[]) {
  args++;
  shared_ptr<Alibabacloud_Dingtalkim_1_0::Client> client = make_shared<Alibabacloud_Dingtalkim_1_0::Client>(createClient());
  shared_ptr<Alibabacloud_Dingtalkim_1_0::BatchQueryGroupMemberHeaders> batchQueryGroupMemberHeaders = make_shared<Alibabacloud_Dingtalkim_1_0::BatchQueryGroupMemberHeaders>();
  batchQueryGroupMemberHeaders->xAcsDingtalkAccessToken = make_shared<string>("<your access token>");
  shared_ptr<Alibabacloud_Dingtalkim_1_0::BatchQueryGroupMemberRequest> batchQueryGroupMemberRequest = make_shared<Alibabacloud_Dingtalkim_1_0::BatchQueryGroupMemberRequest>(map<string, boost::any>({
    {"openConversationId", boost::any(string("cidXXXXXXX"))},
    {"coolAppCode", boost::any(string("COOLAPP_XXXXX"))},
    {"maxResults", boost::any(200)},
    {"nextToken", boost::any(string("XXXXX"))}
  }));
  try {
    client->batchQueryGroupMemberWithOptions(batchQueryGroupMemberRequest, batchQueryGroupMemberHeaders, make_shared<Darabonba_Util::RuntimeOptions>(Darabonba_Util::RuntimeOptions()));
  }
  catch (std::exception &err) {
    if (!Darabonba_Util::Client::empty(err.code) && !Darabonba_Util::Client::empty(err.message)) {
      // err 中含有 code 和 message 属性,可帮助开发定位问题
    }
  }
}

返回示例

HTTP/1.1 200 OK
Content-Type:application/json

{
  "success" : true,
  "memberUserIds" : [ "manager7675" ],
  "hasMore" : false,
  "nextToken" : "92233720368"
}

错误码

HttpCode

错误码

错误信息

说明

400

groupPermissionDenied

无权限,该群没有安装群模板

无权限,该群没有安装群模板

400

paramIllegal

请求参数非法

请求参数非法

400

paramBlank

请求参数为空

请求参数为空

400

cidEncryptError

群ID解析错误

群ID解析错误

400

groupTemplatePermissionDenied

无权限,该群安装的群模板不属于当前token对应的应用名下

无权限,该群安装的群模板不属于当前token对应的应用名下

400

coolAppUninstalled

无权限,该群没有安装群聊酷应用

无权限,该群没有安装群聊酷应用

400

coolAppUnexist

群聊酷应用不存在

群聊酷应用不存在,请检查酷应用编码是否正确

400

coolAppPermissionDenied

无权限,指定的群聊酷应用不属于当前token对应的应用名下

无权限,指定的群聊酷应用不属于当前token对应的应用名下

400

systemError

系统异常

系统内部异常

400

auth.error

%s

权限校验不通过