跳到主要内容

开发指南

引入方式

"com.xd.sdk.report": "6.27.0"

举报

var reporter = new ReportParams.ReporterInfo(new Dictionary<string, object>
{
// 举报者附加信息,e.g.:
{ "reporter_role_id", "举报人游戏角色id" },
{ "reporter_role_name", "举报人游戏角色名称" },
{ "reporter_server_code", "举报人所在服务器" }
});

var reportee = new ReportParams.ReporteeInfo(xdid, new Dictionary<string, object>
{
// 被举报者附加信息,e.g.:
{ "reportee_role_id", "被举报人游戏角色id" },
{ "reportee_role_name", "被举报人游戏角色名称" },
{ "reportee_server_code", "被举报人所在服务器" }
});

var reasons = new List<ReportParams.ReasonInfo>
{
new ReportParams.ReasonInfo(1, "言语辱骂", new Dictionary<string, object>
{
// 举报原因附加信息,e.g.:
{"photo_urls_str", "https://www.xd.cn/1.png"},
{"chat_content", "不知道SB"},
{"chat_history", new List<Dictionary<string, object>>()
{
new Dictionary<string, object>()
{
{"xdid", "{user_xdid}"},
{"pid", "{user_pid}"},
{"nickname", "叫吗"},
{"chat_content", "来我家干嘛<#04><#04><#04>"},
{"timestamp", 1746566259},
{"is_report", false}
},
new Dictionary<string, object>()
{
{"xdid", "{user_xdid}"},
{"pid", "{user_pid}"},
{"nickname", "骂我就cpdd"},
{"chat_content", "不知道SB"},
{"timestamp", 1746566267},
{"is_report", false}
}
}),
new ReportParams.ReasonInfo(2, "使用外挂", new Dictionary<string, object>
{
// 举报原因附加信息,e.g.:
{"photo_urls_str", "https://www.xd.cn/1.png|https://www.xd.cn/2.png"} // 多张图片用 | 分割
})
};

var evidenceList = new List<string>
{
"{PC 文件绝对路径}",
"{Android 文件绝对路径}",
"{iOS 文件绝对路径"
};

var reportParams = new ReportParams.Builder()
.SetReporter(reporter)
.SetReportee(reportee)
.SetReasons(reasons)
.SetUserDescription("这个人不仅使用外挂打游戏,还言语辱骂队友!!!我要举报 TA!")
.SetEvidenceList(evidenceList)
.SetExtras(new Dictionary<string, object>
{
// 举报附加信息,e.g.:
{"roleId", "gameRoleId"},
{"userLevel", 100}
})
.Build();

XD.SDK.Report.XDGReport.Report(reportParams, result => {
if (result.Success)
{
Console.WriteLine("Report successfully");
}
else
{
Console.WriteLine($"Report failed: {result.XdException?.error_msg}");
}
});

数据结构定义

public class ReportParams
{
public ReporterInfo Reporter { get; } // 举报人
public ReporteeInfo Reportee { get; } // 被举报人
public List<ReasonInfo> Reasons { get; } // 举报原因
public string UserDescription { get; } // 玩家描述
public List<string> EvidenceList { get; } // 玩家添加的附件(本地文件绝对路径)
public Dictionary<string, object> Extras { get; } // 附加信息补充玩家信息,透传给使用方

public class ReporterInfo
{
public Dictionary<string, object> Extras { get; } // 举报人附加信息
}

public class ReporteeInfo
{
public string XdId { get; } // 被举报人 XDID
public Dictionary<string, object> Extras { get; } // 被举报人附加信息
}

public class ReasonInfo
{
public long ID { get; } // 举报原因 ID,后台配置
public string Title { get; } // 原因名称
public Dictionary<string, object> Extras { get; } // 附加信息补充玩家信息,透传给使用方
}
}

附加信息格式标准

举报原因

数据字段字段声明:

photo_urls_str: 图片地址,多张图片用`|`分割
 var reasons = new List<ReportParams.ReasonInfo>
{
new ReportParams.ReasonInfo(1, "言语辱骂", new Dictionary<string, object>
{
// 举报原因附加信息,e.g.:
// 单张图片
{"photo_urls_str", "https://www.xd.cn/1.png"}
}),
new ReportParams.ReasonInfo(2, "使用外挂", new Dictionary<string, object>
{
// 举报原因附加信息,e.g.:
// 多张图片用 | 分割
{"photo_urls_str", "https://www.xd.cn/1.png|https://www.xd.cn/2.png"}
})
};

聊天记录

数据格式字段声明:

字段说明:
chat_content:当前消息内容(字符串,表示本条消息的文本内容)
chat_history:聊天历史(数组,包含若干条历史消息,不超过10条,每条消息结构如下)
├─ xdid:用户XDID
├─ pid:用户角色ID
├─ nickname:昵称(用户的显示名称)
├─ chat_content:聊天内容(该历史消息的文本内容)
├─ timestamp:时间戳(消息发送时间,单位为秒,Unix时间戳)
└─ is_report:是否被举报,标记哪条被举报(布尔值,true 表示被举报,false 表示未被举报)
var reportParams = new ReportParams.Builder()
// ... 其他构造参数请参考「举报」部分
.SetReasons(new List<ReportParams.ReasonInfo>
{
new ReportParams.ReasonInfo(1, "言语辱骂", new Dictionary<string, object>
{
// 举报原因附加信息,e.g.:
{ "photo_urls_str", "https://www.xd.cn/1.png" },
{ "chat_content", "不知道SB" },
{
"chat_history", new List<Dictionary<string, object>>
{
new Dictionary<string, object>
{
{"xdid", "{user_xdid}"},
{"pid", "{user_pid}"},
{"nickname", "叫吗"},
{"chat_content", "来我家干嘛<#04><#04><#04>"},
{"timestamp", 1746566259},
{"is_report", false}
},
new Dictionary<string, object>()
{
{ "xdid", "{user_xdid}" },
{ "pid", "{user_pid}" },
{ "nickname", "叫吗" },
{ "chat_content", "来我家干嘛<#04><#04><#04>" },
{ "timestamp", 1746566259 },
{ "is_report", false }
}
}
}
})
})
.Build();