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();
}
}