Skip to content

Commit 7a80232

Browse files
committed
feat(microapp): 新增直播小玩法用户战绩与排行榜相关接口
1 parent d2ce870 commit 7a80232

23 files changed

Lines changed: 697 additions & 3 deletions

src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Extensions/DouyinMicroAppWebcastClientExecuteGamingConExtensions.cs

Lines changed: 187 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ public static class DouyinMicroAppWebcastClientExecuteGamingConExtensions
1212
/// <para>异步调用 [POST] /gaming_con/round/sync_status 接口。</para>
1313
/// <para>
1414
/// REF: <br/>
15-
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]>
15+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]> <br/>
16+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]> <br/>
17+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/quick-select ]]>
1618
/// </para>
1719
/// </summary>
1820
/// <param name="client"></param>
@@ -38,7 +40,8 @@ public static class DouyinMicroAppWebcastClientExecuteGamingConExtensions
3840
/// <para>异步调用 [POST] /gaming_con/round/upload_user_group_info 接口。</para>
3941
/// <para>
4042
/// REF: <br/>
41-
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]>
43+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]> <br/>
44+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/quick-select ]]>
4245
/// </para>
4346
/// </summary>
4447
/// <param name="client"></param>
@@ -59,5 +62,187 @@ public static class DouyinMicroAppWebcastClientExecuteGamingConExtensions
5962

6063
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadUserGroupInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
6164
}
65+
66+
/// <summary>
67+
/// <para>异步调用 [POST] /gaming_con/round/upload_rank_list 接口。</para>
68+
/// <para>
69+
/// REF: <br/>
70+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
71+
/// </para>
72+
/// </summary>
73+
/// <param name="client"></param>
74+
/// <param name="request"></param>
75+
/// <param name="cancellationToken"></param>
76+
/// <returns></returns>
77+
public static async Task<Models.WebcastGamingConRoundUploadRankListResponse> ExecuteWebcastGamingConRoundUploadRankListAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundUploadRankListRequest request, CancellationToken cancellationToken = default)
78+
{
79+
if (client is null) throw new ArgumentNullException(nameof(client));
80+
if (request is null) throw new ArgumentNullException(nameof(request));
81+
82+
if (request.AppId is null)
83+
request.AppId = client.Credentials.AppId;
84+
85+
IFlurlRequest flurlReq = client
86+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "round", "upload_rank_list")
87+
.WithHeader("X-Token", request.AccessToken);
88+
89+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadRankListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
90+
}
91+
92+
/// <summary>
93+
/// <para>异步调用 [POST] /gaming_con/round/upload_user_result 接口。</para>
94+
/// <para>
95+
/// REF: <br/>
96+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
97+
/// </para>
98+
/// </summary>
99+
/// <param name="client"></param>
100+
/// <param name="request"></param>
101+
/// <param name="cancellationToken"></param>
102+
/// <returns></returns>
103+
public static async Task<Models.WebcastGamingConRoundUploadUserResultResponse> ExecuteWebcastGamingConRoundUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundUploadUserResultRequest request, CancellationToken cancellationToken = default)
104+
{
105+
if (client is null) throw new ArgumentNullException(nameof(client));
106+
if (request is null) throw new ArgumentNullException(nameof(request));
107+
108+
if (request.AppId is null)
109+
request.AppId = client.Credentials.AppId;
110+
111+
IFlurlRequest flurlReq = client
112+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "round", "upload_user_result")
113+
.WithHeader("X-Token", request.AccessToken);
114+
115+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
116+
}
117+
118+
/// <summary>
119+
/// <para>异步调用 [POST] /gaming_con/round/complete_upload_user_result 接口。</para>
120+
/// <para>
121+
/// REF: <br/>
122+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
123+
/// </para>
124+
/// </summary>
125+
/// <param name="client"></param>
126+
/// <param name="request"></param>
127+
/// <param name="cancellationToken"></param>
128+
/// <returns></returns>
129+
public static async Task<Models.WebcastGamingConRoundCompleteUploadUserResultResponse> ExecuteWebcastGamingConRoundCompleteUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundCompleteUploadUserResultRequest request, CancellationToken cancellationToken = default)
130+
{
131+
if (client is null) throw new ArgumentNullException(nameof(client));
132+
if (request is null) throw new ArgumentNullException(nameof(request));
133+
134+
if (request.AppId is null)
135+
request.AppId = client.Credentials.AppId;
136+
137+
IFlurlRequest flurlReq = client
138+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "round", "complete_upload_user_result")
139+
.WithHeader("X-Token", request.AccessToken);
140+
141+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundCompleteUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
142+
}
143+
144+
/// <summary>
145+
/// <para>异步调用 [POST] /gaming_con/world_rank/set_valid_version 接口。</para>
146+
/// <para>
147+
/// REF: <br/>
148+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
149+
/// </para>
150+
/// </summary>
151+
/// <param name="client"></param>
152+
/// <param name="request"></param>
153+
/// <param name="cancellationToken"></param>
154+
/// <returns></returns>
155+
public static async Task<Models.WebcastGamingConWorldRankSetValidVersionResponse> ExecuteWebcastGamingConWorldRankSetValidVersionAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankSetValidVersionRequest request, CancellationToken cancellationToken = default)
156+
{
157+
if (client is null) throw new ArgumentNullException(nameof(client));
158+
if (request is null) throw new ArgumentNullException(nameof(request));
159+
160+
if (request.AppId is null)
161+
request.AppId = client.Credentials.AppId;
162+
163+
IFlurlRequest flurlReq = client
164+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "world_rank", "set_valid_version")
165+
.WithHeader("X-Token", request.AccessToken);
166+
167+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankSetValidVersionResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
168+
}
169+
170+
/// <summary>
171+
/// <para>异步调用 [POST] /gaming_con/world_rank/upload_rank_list 接口。</para>
172+
/// <para>
173+
/// REF: <br/>
174+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
175+
/// </para>
176+
/// </summary>
177+
/// <param name="client"></param>
178+
/// <param name="request"></param>
179+
/// <param name="cancellationToken"></param>
180+
/// <returns></returns>
181+
public static async Task<Models.WebcastGamingConWorldRankUploadRankListResponse> ExecuteWebcastGamingConWorldRankUploadRankListAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankUploadRankListRequest request, CancellationToken cancellationToken = default)
182+
{
183+
if (client is null) throw new ArgumentNullException(nameof(client));
184+
if (request is null) throw new ArgumentNullException(nameof(request));
185+
186+
if (request.AppId is null)
187+
request.AppId = client.Credentials.AppId;
188+
189+
IFlurlRequest flurlReq = client
190+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "world_rank", "upload_rank_list")
191+
.WithHeader("X-Token", request.AccessToken);
192+
193+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankUploadRankListResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
194+
}
195+
196+
/// <summary>
197+
/// <para>异步调用 [POST] /gaming_con/world_rank/upload_user_result 接口。</para>
198+
/// <para>
199+
/// REF: <br/>
200+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
201+
/// </para>
202+
/// </summary>
203+
/// <param name="client"></param>
204+
/// <param name="request"></param>
205+
/// <param name="cancellationToken"></param>
206+
/// <returns></returns>
207+
public static async Task<Models.WebcastGamingConWorldRankUploadUserResultResponse> ExecuteWebcastGamingConWorldRankUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankUploadUserResultRequest request, CancellationToken cancellationToken = default)
208+
{
209+
if (client is null) throw new ArgumentNullException(nameof(client));
210+
if (request is null) throw new ArgumentNullException(nameof(request));
211+
212+
if (request.AppId is null)
213+
request.AppId = client.Credentials.AppId;
214+
215+
IFlurlRequest flurlReq = client
216+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "world_rank", "upload_user_result")
217+
.WithHeader("X-Token", request.AccessToken);
218+
219+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
220+
}
221+
222+
/// <summary>
223+
/// <para>异步调用 [POST] /gaming_con/world_rank/complete_upload_user_result 接口。</para>
224+
/// <para>
225+
/// REF: <br/>
226+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/user-records-rankings ]]>
227+
/// </para>
228+
/// </summary>
229+
/// <param name="client"></param>
230+
/// <param name="request"></param>
231+
/// <param name="cancellationToken"></param>
232+
/// <returns></returns>
233+
public static async Task<Models.WebcastGamingConWorldRankCompleteUploadUserResultResponse> ExecuteWebcastGamingConWorldRankCompleteUploadUserResultAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConWorldRankCompleteUploadUserResultRequest request, CancellationToken cancellationToken = default)
234+
{
235+
if (client is null) throw new ArgumentNullException(nameof(client));
236+
if (request is null) throw new ArgumentNullException(nameof(request));
237+
238+
if (request.AppId is null)
239+
request.AppId = client.Credentials.AppId;
240+
241+
IFlurlRequest flurlReq = client
242+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "world_rank", "complete_upload_user_result")
243+
.WithHeader("X-Token", request.AccessToken);
244+
245+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConWorldRankCompleteUploadUserResultResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
246+
}
62247
}
63248
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
using System.Collections.Generic;
2+
3+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models
4+
{
5+
/// <summary>
6+
/// <para>表示 [POST] /gaming_con/round/complete_upload_user_result 接口的请求。</para>
7+
/// </summary>
8+
public class WebcastGamingConRoundCompleteUploadUserResultRequest : DouyinMicroAppWebcastRequest
9+
{
10+
/// <summary>
11+
/// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref="DouyinMicroAppWebcastClient"/> 时的 <see cref="DouyinMicroAppWebcastClientOptions.AppId"/> 参数。
12+
/// </summary>
13+
[Newtonsoft.Json.JsonProperty("app_id")]
14+
[System.Text.Json.Serialization.JsonPropertyName("app_id")]
15+
public string? AppId { get; set; }
16+
17+
/// <summary>
18+
/// 获取或设置主播的 OpenId。
19+
/// </summary>
20+
[Newtonsoft.Json.JsonProperty("anchor_open_id")]
21+
[System.Text.Json.Serialization.JsonPropertyName("anchor_open_id")]
22+
public string AnchorOpenId { get; set; } = string.Empty;
23+
24+
/// <summary>
25+
/// 获取或设置​房间 ID。
26+
/// </summary>
27+
[Newtonsoft.Json.JsonProperty("room_id")]
28+
[System.Text.Json.Serialization.JsonPropertyName("room_id")]
29+
public string RoomId { get; set; } = string.Empty;
30+
31+
/// <summary>
32+
/// 获取或设置​​对局 ID。
33+
/// </summary>
34+
[Newtonsoft.Json.JsonProperty("round_id")]
35+
[System.Text.Json.Serialization.JsonPropertyName("round_id")]
36+
public long RoundId { get; set; }
37+
38+
/// <summary>
39+
/// 获取或设置上传完成时间戳。
40+
/// </summary>
41+
[Newtonsoft.Json.JsonProperty("complete_time")]
42+
[System.Text.Json.Serialization.JsonPropertyName("complete_time")]
43+
public long? CompleteTimestamp { get; set; }
44+
}
45+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /gaming_con/round/complete_upload_user_result 接口的响应。</para>
5+
/// </summary>
6+
public class WebcastGamingConRoundCompleteUploadUserResultResponse : DouyinMicroAppWebcastResponse
7+
{
8+
}
9+
}

src/SKIT.FlurlHttpClient.ByteDance.MicroApp/ExtendedSDK/Webcast/Models/GamingCon/WebcastGamingConRoundSyncStatusRequest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class GroupResult
2323
/// </summary>
2424
[Newtonsoft.Json.JsonProperty("result")]
2525
[System.Text.Json.Serialization.JsonPropertyName("result")]
26-
public int Result { get; set; }
26+
public int RoundResult { get; set; }
2727
}
2828
}
2929

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
using System.Collections.Generic;
2+
3+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models
4+
{
5+
/// <summary>
6+
/// <para>表示 [POST] /gaming_con/round/upload_rank_list 接口的请求。</para>
7+
/// </summary>
8+
public class WebcastGamingConRoundUploadRankListRequest : DouyinMicroAppWebcastRequest
9+
{
10+
public static class Types
11+
{
12+
public class Rank : WebcastGamingConWorldRankUploadRankListRequest.Types.Rank
13+
{
14+
/// <summary>
15+
/// 获取或设置阵营 ID。
16+
/// </summary>
17+
[Newtonsoft.Json.JsonProperty("group_id")]
18+
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
19+
public string GroupId { get; set; } = string.Empty;
20+
21+
/// <summary>
22+
/// 获取或设置​​对局结果。
23+
/// </summary>
24+
[Newtonsoft.Json.JsonProperty("round_result")]
25+
[System.Text.Json.Serialization.JsonPropertyName("round_result")]
26+
public int RoundResult { get; set; }
27+
}
28+
}
29+
30+
/// <summary>
31+
/// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref="DouyinMicroAppWebcastClient"/> 时的 <see cref="DouyinMicroAppWebcastClientOptions.AppId"/> 参数。
32+
/// </summary>
33+
[Newtonsoft.Json.JsonProperty("app_id")]
34+
[System.Text.Json.Serialization.JsonPropertyName("app_id")]
35+
public string? AppId { get; set; }
36+
37+
/// <summary>
38+
/// 获取或设置主播的 OpenId。
39+
/// </summary>
40+
[Newtonsoft.Json.JsonProperty("anchor_open_id")]
41+
[System.Text.Json.Serialization.JsonPropertyName("anchor_open_id")]
42+
public string AnchorOpenId { get; set; } = string.Empty;
43+
44+
/// <summary>
45+
/// 获取或设置​房间 ID。
46+
/// </summary>
47+
[Newtonsoft.Json.JsonProperty("room_id")]
48+
[System.Text.Json.Serialization.JsonPropertyName("room_id")]
49+
public string RoomId { get; set; } = string.Empty;
50+
51+
/// <summary>
52+
/// 获取或设置​​对局 ID。
53+
/// </summary>
54+
[Newtonsoft.Json.JsonProperty("round_id")]
55+
[System.Text.Json.Serialization.JsonPropertyName("round_id")]
56+
public long RoundId { get; set; }
57+
58+
/// <summary>
59+
/// 获取或设置对局榜单列表​​​。
60+
/// </summary>
61+
[Newtonsoft.Json.JsonProperty("rank_list")]
62+
[System.Text.Json.Serialization.JsonPropertyName("rank_list")]
63+
public IList<Types.Rank> RankList { get; set; } = new List<Types.Rank>();
64+
}
65+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /gaming_con/round/upload_rank_list 接口的响应。</para>
5+
/// </summary>
6+
public class WebcastGamingConRoundUploadRankListResponse : DouyinMicroAppWebcastResponse
7+
{
8+
}
9+
}

0 commit comments

Comments
 (0)