Skip to content

Commit 9f107d2

Browse files
wip
1 parent f4ba5a5 commit 9f107d2

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

src/Nullinside.Api.TwitchBot/Controllers/TwitchWebHookController.cs

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,30 @@ public class TwitchWebHookController : ControllerBase {
3131
[HttpPost]
3232
[Route("chat")]
3333
public async Task<ContentResult> TwitchChatMessageCallback(CancellationToken token) {
34-
using StreamReader stream = new StreamReader(this.HttpContext.Request.Body);
35-
string stuff = await stream.ReadToEndAsync(token);
36-
_log.Info($"TwitchChatMessageCallback: {stuff}");
37-
38-
var hi =JsonConvert.DeserializeObject<TwitchChallangeResponse>(stuff);
39-
var resp = new ContentResult();
40-
resp.ContentType = "text/plain";
41-
resp.StatusCode = (int)HttpStatusCode.OK;
42-
if (null != hi) {
43-
resp.Content = hi.Challenge?.ToString() ?? string.Empty;
34+
var body = await this.GetBodyAsString(token);
35+
var resp = new ContentResult {
36+
ContentType = "text/plain",
37+
StatusCode = (int)HttpStatusCode.OK
38+
};
39+
40+
_log.Info($"TwitchChatMessageCallback: {body}");
41+
42+
var messageType = GetTwitchMessageType();
43+
switch (messageType) {
44+
case "webhook_callback_verification":
45+
var challenge = JsonConvert.DeserializeObject<TwitchChallangeResponse>(body);
46+
if (null != challenge) {
47+
resp.ContentType = "text/plain";
48+
resp.Content = challenge.Challenge?.ToString() ?? string.Empty;
49+
}
50+
51+
break;
4452
}
4553

4654
return resp;
4755
}
56+
57+
private string? GetTwitchMessageType() {
58+
return this.Request.Headers["Twitch-Eventsub-Message-Type"];
59+
}
4860
}

0 commit comments

Comments
 (0)