GroupCreate

introduction

Create group

To group friends into categories such as "Classmates at university" and "Coworkers", call the following APIs.

You can specify groupID when creating a new group. And IM SDK may assign and groupID for you in case you don't specify one, and it is transmitted to you by the callback.

You cannot create duplicated groups in one SDKAppID.

Set create_group_param_group_member_array to initialize group members (NULL for AVChatRoom).

To create Community, you need to buy Ultimate Package and apply for Community.

For SDKAppID in Professional/Ultimate packages, the maximum net increase in group count per day (the number of created groups minus the number of disbanded groups) is 10,000 for all group types. the free peak group count is 100,000 per month, and you will need to pay fees for exceeding the quota in a plan. It is recommend that you disband the groups that are no longer needed in a timely manner.

Parameter details

overload1

Parameter name Parameter type Required Description
group CreateGroupParam Required CreateGroupParam
callback ValueCallback< CreateGroupResult > Required Asynchronous callback The format of json_param in the return value is json

overload2

Parameter name Parameter type Required Description
group CreateGroupParam Required CreateGroupParam
callback ValueCallback< string > Required Asynchronous callback The format of json_param in the return value is string

Returned template

TIMResult

The parameters of the callback function after successfully calling the API:
code:int
desc:string
json_param:
'{
  "create_group_result_groupid" : "first group id"
}'// For the meaning of Json Key, please refer to [CreateGroupResult]
user_data:string

Return value details

name type description
TIMResult TIMResult Return value of calling API
code int Result error code: Error Codes
desc string The description of the error.
json_param string Json string. Calling different API will get different Json strings. For the meaning of Json Key, please refer to CreateGroupResult
user_data string User-defined data transfered by ImSDK without any processing

Code example

using UnityEngine;
using UnityEngine.UI;
using com.tencent.im.unity.demo.types;
using UnityEngine.SceneManagement;
using com.tencent.imsdk.unity;
using com.tencent.imsdk.unity.types;
using com.tencent.imsdk.unity.enums;
using System;
using com.tencent.im.unity.demo.utils;

public class GroupCreate : MonoBehaviour
{
  public Text Header;
  public InputField GroupID;
  public InputField GroupName;
  public Dropdown GroupType;
  public Text Result;

  public Button Submit;
  public Button Copy;
  string[] Labels = new string[] { "GroupIDLabel", "GroupNameLabel", "SelectGroupTypeLabel" };
  void Start()
  {
    foreach (string label in Labels)
    {
      GameObject.Find(label).GetComponent<Text>().text = Utils.t(label);
    }
    Header = GameObject.Find("HeaderText").GetComponent<Text>();
    GroupID = GameObject.Find("GroupID").GetComponent<InputField>();
    GroupName = GameObject.Find("GroupName").GetComponent<InputField>();
    GroupType = GameObject.Find("Dropdown").GetComponent<Dropdown>();
    Result = GameObject.Find("ResultText").GetComponent<Text>();
    Submit = GameObject.Find("Submit").GetComponent<Button>();
    Copy = GameObject.Find("Copy").GetComponent<Button>();
    Copy.GetComponentInChildren<Text>().text = Utils.t("Copy");
    Submit.onClick.AddListener(GroupCreateSDK);
    Copy.onClick.AddListener(CopyText);
    GroupType.interactable = true;
    if (CurrentSceneInfo.info != null)
    {
      Header.text = Utils.IsCn() ? CurrentSceneInfo.info.apiText + " " + CurrentSceneInfo.info.apiName : CurrentSceneInfo.info.apiName;
      Submit.GetComponentInChildren<Text>().text = CurrentSceneInfo.info.apiName;
    }
    foreach (string name in Enum.GetNames(typeof(TIMGroupType)))
    {
      Dropdown.OptionData option = new Dropdown.OptionData();
      option.text = name;
      GroupType.options.Add(option);
    }
  }

  public void GroupCreateSDK()
  {
    print(GroupID.text);
    print(GroupName.text);
    print(GroupType.value);

    CreateGroupParam param = new CreateGroupParam();
    param.create_group_param_group_id = GroupID.text;
    param.create_group_param_group_name = GroupName.text;
    param.create_group_param_group_type = (TIMGroupType)GroupType.value;
    param.create_group_param_add_option = TIMGroupAddOption.kTIMGroupAddOpt_Any;
    param.create_group_param_notification = "create_group_param_notification";
    param.create_group_param_introduction = "create_group_param_introduction";
    param.create_group_param_face_url = "https://yq.sukeni.com/Logo.jpg";
    TIMResult res = TencentIMSDK.GroupCreate(param, Utils.addAsyncStringDataToScreen(GetResult));
    Result.text = Utils.SynchronizeResult(res);
  }

  void GetResult(params object[] parameters)
  {
    Result.text += (string)parameters[0];
  }

  void CopyText()
  {
    Utils.Copy(Result.text);
  }
  void OnApplicationQuit()
  {
    TencentIMSDK.Uninit();
  }
}

results matching ""

    No results matching ""