Skip to content

Commit d2ce870

Browse files
committed
feat(microapp): 新增直播小玩法礼物进阶互动效果相关接口
1 parent 0bf6774 commit d2ce870

7 files changed

Lines changed: 239 additions & 0 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
using System;
2+
using System.Net.Http;
3+
using System.Threading;
4+
using System.Threading.Tasks;
5+
using Flurl.Http;
6+
7+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast
8+
{
9+
public static class DouyinMicroAppWebcastClientExecuteGamingConExtensions
10+
{
11+
/// <summary>
12+
/// <para>异步调用 [POST] /gaming_con/round/sync_status 接口。</para>
13+
/// <para>
14+
/// REF: <br/>
15+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]>
16+
/// </para>
17+
/// </summary>
18+
/// <param name="client"></param>
19+
/// <param name="request"></param>
20+
/// <param name="cancellationToken"></param>
21+
/// <returns></returns>
22+
public static async Task<Models.WebcastGamingConRoundSyncStatusResponse> ExecuteWebcastGamingConRoundSyncStatusAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundSyncStatusRequest request, CancellationToken cancellationToken = default)
23+
{
24+
if (client is null) throw new ArgumentNullException(nameof(client));
25+
if (request is null) throw new ArgumentNullException(nameof(request));
26+
27+
if (request.AppId is null)
28+
request.AppId = client.Credentials.AppId;
29+
30+
IFlurlRequest flurlReq = client
31+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "round", "sync_status")
32+
.WithHeader("X-Token", request.AccessToken);
33+
34+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundSyncStatusResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
35+
}
36+
37+
/// <summary>
38+
/// <para>异步调用 [POST] /gaming_con/round/upload_user_group_info 接口。</para>
39+
/// <para>
40+
/// REF: <br/>
41+
/// <![CDATA[ https://developer.open-douyin.com/docs/resource/zh-CN/interaction/develop/server/live/gift-interaction ]]>
42+
/// </para>
43+
/// </summary>
44+
/// <param name="client"></param>
45+
/// <param name="request"></param>
46+
/// <param name="cancellationToken"></param>
47+
/// <returns></returns>
48+
public static async Task<Models.WebcastGamingConRoundUploadUserGroupInfoResponse> ExecuteWebcastGamingConRoundUploadUserGroupInfoAsync(this DouyinMicroAppWebcastClient client, Models.WebcastGamingConRoundUploadUserGroupInfoRequest request, CancellationToken cancellationToken = default)
49+
{
50+
if (client is null) throw new ArgumentNullException(nameof(client));
51+
if (request is null) throw new ArgumentNullException(nameof(request));
52+
53+
if (request.AppId is null)
54+
request.AppId = client.Credentials.AppId;
55+
56+
IFlurlRequest flurlReq = client
57+
.CreateFlurlRequest(request, HttpMethod.Post, "gaming_con", "round", "upload_user_group_info")
58+
.WithHeader("X-Token", request.AccessToken);
59+
60+
return await client.SendFlurlRequestAsJsonAsync<Models.WebcastGamingConRoundUploadUserGroupInfoResponse>(flurlReq, data: request, cancellationToken: cancellationToken).ConfigureAwait(false);
61+
}
62+
}
63+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
using System.Collections.Generic;
2+
3+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models
4+
{
5+
/// <summary>
6+
/// <para>表示 [POST] /gaming_con/round/sync_status 接口的请求。</para>
7+
/// </summary>
8+
public class WebcastGamingConRoundSyncStatusRequest : DouyinMicroAppWebcastRequest
9+
{
10+
public static class Types
11+
{
12+
public class GroupResult
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("result")]
25+
[System.Text.Json.Serialization.JsonPropertyName("result")]
26+
public int Result { 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("start_time")]
62+
[System.Text.Json.Serialization.JsonPropertyName("start_time")]
63+
public long StartTimestamp { get; set; }
64+
65+
/// <summary>
66+
/// 获取或设置本局结束时间戳​。
67+
/// </summary>
68+
[Newtonsoft.Json.JsonProperty("end_time")]
69+
[System.Text.Json.Serialization.JsonPropertyName("end_time")]
70+
public long EndTimestamp { get; set; }
71+
72+
/// <summary>
73+
/// 获取或设置对局状态。
74+
/// </summary>
75+
[Newtonsoft.Json.JsonProperty("status")]
76+
[System.Text.Json.Serialization.JsonPropertyName("status")]
77+
public int Status { get; set; }
78+
79+
/// <summary>
80+
/// 获取或设置阵型的结果数据​。
81+
/// </summary>
82+
[Newtonsoft.Json.JsonProperty("group_result_list")]
83+
[System.Text.Json.Serialization.JsonPropertyName("group_result_list")]
84+
public IList<Types.GroupResult>? GroupResultList { get; set; }
85+
}
86+
}
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/sync_status 接口的响应。</para>
5+
/// </summary>
6+
public class WebcastGamingConRoundSyncStatusResponse : DouyinMicroAppWebcastResponse
7+
{
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
namespace SKIT.FlurlHttpClient.ByteDance.MicroApp.ExtendedSDK.Webcast.Models
2+
{
3+
/// <summary>
4+
/// <para>表示 [POST] /gaming_con/round/upload_user_group_info 接口的请求。</para>
5+
/// </summary>
6+
public class WebcastGamingConRoundUploadUserGroupInfoRequest : DouyinMicroAppWebcastRequest
7+
{
8+
/// <summary>
9+
/// 获取或设置应用的 AppId。如果不指定将使用构造 <see cref="DouyinMicroAppWebcastClient"/> 时的 <see cref="DouyinMicroAppWebcastClientOptions.AppId"/> 参数。
10+
/// </summary>
11+
[Newtonsoft.Json.JsonProperty("app_id")]
12+
[System.Text.Json.Serialization.JsonPropertyName("app_id")]
13+
public string? AppId { get; set; }
14+
15+
/// <summary>
16+
/// 获取或设置主播的 OpenId。
17+
/// </summary>
18+
[Newtonsoft.Json.JsonProperty("anchor_open_id")]
19+
[System.Text.Json.Serialization.JsonPropertyName("anchor_open_id")]
20+
public string AnchorOpenId { get; set; } = string.Empty;
21+
22+
/// <summary>
23+
/// 获取或设置​房间 ID。
24+
/// </summary>
25+
[Newtonsoft.Json.JsonProperty("room_id")]
26+
[System.Text.Json.Serialization.JsonPropertyName("room_id")]
27+
public string RoomId { get; set; } = string.Empty;
28+
29+
/// <summary>
30+
/// 获取或设置​​对局 ID。
31+
/// </summary>
32+
[Newtonsoft.Json.JsonProperty("round_id")]
33+
[System.Text.Json.Serialization.JsonPropertyName("round_id")]
34+
public long RoundId { get; set; }
35+
36+
/// <summary>
37+
/// 获取或设置阵营 ID。
38+
/// </summary>
39+
[Newtonsoft.Json.JsonProperty("group_id")]
40+
[System.Text.Json.Serialization.JsonPropertyName("group_id")]
41+
public string GroupId { get; set; } = string.Empty;
42+
43+
/// <summary>
44+
/// 获取或设置用户的 OpenId。
45+
/// </summary>
46+
[Newtonsoft.Json.JsonProperty("open_id")]
47+
[System.Text.Json.Serialization.JsonPropertyName("open_id")]
48+
public string OpenId { get; set; } = string.Empty;
49+
}
50+
}
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_user_group_info 接口的响应。</para>
5+
/// </summary>
6+
public class WebcastGamingConRoundUploadUserGroupInfoResponse : DouyinMicroAppWebcastResponse
7+
{
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"round_id": 23,
3+
"room_id": "78273162632",
4+
"app_id": "tt411d37a0dxxxxx",
5+
"anchor_open_id": "UhJKbtCg3N",
6+
"start_time": 1722239345,
7+
"end_time": 1722239345,
8+
"status": 2,
9+
"group_result_list": [
10+
{
11+
"group_id": "test-01",
12+
"result": 1
13+
}
14+
]
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"open_id": "mGYZLfwsH9",
3+
"group_id": "test-111",
4+
"round_id": 1213,
5+
"room_id": "76886868223",
6+
"app_id": "tt411d37a0xxxx"
7+
}

0 commit comments

Comments
 (0)