跳到主要内容

服务端对接

如果不想接入 sdk 就使用举报服务,可以通过 HTTP 请求的方式直接调用举报服务接口,但是需要自行实现接口签名、传递必要参数等基础功能。

域名

测试地址

大陆

http://xdsdk-bj-qa-reportingbff.xd.cn

海外

http://xdsdk-sg-qa-reportingbff.xd.com

生产地址

大陆

http://xdsdk-bj-prod-reportingbff.xd.cn

海外

http://xdsdk-sg-prod-reportingbff.xd.com

使用方法

  1. 如果需要上传图片:
    1. 先通过 /xd/reporting/open/v1/upload/oss_sign_url 接口上传获得签名 signUrl
    2. 再读取用户上传文件,使用阿里云sdk(https://help.aliyun.com/zh/oss/user-guide/simple-upload)或者 restful API(https://help.aliyun.com/zh/oss/developer-reference/putobject?spm=a2c4g.11186623.0.0.29585168bwW3GT#reference-l5p-ftw-tdb) 上传到 oss
    3. 获取上传完成的地址 ossUrl
  2. 组装参数并请求 /xd/reporting/open/v1/player/report 接口上报举报

接口

/xd/reporting/open/v1/player/report

POST

Summary:
  • 上报举报
请求体参数
NameLocated inTypeDescriptionRequired
client_infobodyv1ClientInfo客户端必要信息yes
reporterbodyv1User举报人yes
reporteebodyv1User被举报人yes
reasonsbody[ v1Reason ]原因yes
evidencebody[ v1File ]上传文件No
user_descriptionbodystring用户描述No
extrasbodystring额外信息No
noncebodystring一次性随机字符串yes
timestampbodystring请求时间戳yes
signbodystring签名yes
syntax = "proto3";

rpc CreateReportLog (CreateReportLogReq) returns (CreateReportLogResp) {
option (google.api.http) = {
post: "/xd/reporting/open/v1/player/report",
body: "*"
};
}

message CreateReportLogReq {
ClientInfo client_info = 1;
/** 举报人 */
User reporter = 2;
/** 被举报人 */
User reportee = 3;
/** 举报原因 */
repeated Reason reasons = 4;
/** 举报证据 */
repeated File evidence = 5;
string user_description = 6;
string extras = 7;
string nonce = 8;
string timestamp = 9;
string sign = 10;
}
message CreateReportLogResp {}

message ClientInfo {
/** 必传参数 */
string client_id = 1;
string ip = 2;

/** 选填 */
/** 设备 id */
string DeviceID = 20;
}

message Report {
/** 举报人 */
User reporter = 1;
/** 被举报人 */
User reportee = 2;
/** 举报原因 */
repeated Reason reasons = 3;
/** 举报证据 */
repeated File evidence = 4;
string user_description = 5;
/** 业务方根据自身需求补充的信息,透传给后端 */
string extras = 6;
}

message User {
string xdid = 1;
/** 角色 id */
string role_id = 2;
/** 所在服务器 id */
string server_code = 3;
/** 角色名 */
string role_name = 4;
/** 业务方根据自身需求补充的信息,透传给后端 */
string extra = 5;
}

message Reason {
/** 商定好的举报原因 id */
int64 id = 1;
/** 原因名称 */
string title = 2;
/** 业务方根据自身需求补充的信息,透传给后端 */
string extras = 3;
}

message File {
string name = 1;
int64 size_byte = 2;
string uri = 3;
}
NameLocated inDescriptionRequiredSchema
bodybodyYesv1CreateReportLogReq
响应体
CodeDescriptionSchema
200A successful response.v1CreateReportLogResp
defaultAn unexpected error response.rpcStatus
请求示例
curl --location 'http://xdsdk-bj-qa-reportingbff.xd.cn/xd/reporting/open/v1/player/report' \
--header 'Content-Type: application/json' \
--data '{
"client_info": {
"client_id": "客户端 id",
"ip": "ip",
"device_id": "设备 id"
},
"reporter": {
"xdid": "xdid",
"role_id": "角色 id",
"role_name": "角色 名称",
"server_code": "服务器 id",
"extra": "{\"key\": \"value\"}"
},
"reportee": {
"xdid": "xdid",
"role_id": "角色 id",
"role_name": "角色 名称",
"server_code": "服务器 id",
"extra": "{\"key\": \"value\"}"
},
"reasons": [
{
"id": 0,
"title": "举报原因名称",
"extra": "{\"key\": \"value\"}"
}
],
"evidence": [
{
"name": "上传文件名",
"size_byte": 1024Byte,
"uri": "上传文件地址"
}
],
"user_description": "用户填充内容",
"extras": "{\"key\": \"value\"}"
"sign": "fa42de88de4f0da50f2e5c2918a9389d",
"timestamp": "1720677626",
"nonce": "nonce"
}'
  • 注意,sign 字段不参与签名

/xd/reporting/open/v1/upload/oss_sign_url

GET

Summary:
  • 上传举报附属的文件
请求参数
NameLocated inDescriptionRequiredSchema
client_info.client_idquery* 必传参数Nostring
client_info.ipqueryNostring
client_info.device_idquery* 设备 idNostring
xdidqueryNostring
file_namequeryNostring
file_sizequeryNostring (int64)
noncequery一次性随机字符串yesstring
timestampquery请求时间戳yesstring
signquery签名yesstring
响应体
CodeDescriptionSchema
200A successful response.v1GetUploadOssSignedUrlResp
defaultAn unexpected error response.rpcStatus

Models

v1ClientInfo

NameTypeDescriptionRequired
client_idstringNo
ipstringNo
DeviceIDstringNo

v1CreateReportLogReq

NameTypeDescriptionRequired
client_infov1ClientInfoNo
reporterv1UserNo
reporteev1UserNo
reasons[ v1Reason ]No
evidence[ v1File ]No
user_descriptionstringNo
extrasstringNo

v1CreateReportLogResp

NameTypeDescriptionRequired
v1CreateReportLogRespobject

v1File

NameTypeDescriptionRequired
namestringNo
size_bytestring (int64)No
uristringNo

v1GetUploadOssSignedUrlResp

NameTypeDescriptionRequired
signed_urlstringNo
ttlstring (int64)No

v1Reason

NameTypeDescriptionRequired
idstring (int64)No
titlestringNo
extrasstringNo

v1User

NameTypeDescriptionRequired
xdidstringNo
role_idstringNo
server_codestringNo
role_namestringNo
extrastringNo

接口签名

sign 字段的签算过程见 s2s md5 加密 小节。