microsoft/teams.net

Public

mirrored fromhttps://github.com/microsoft/teams.netAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
next/core-activitybuilder

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

Libraries/Microsoft.Teams.Api/Clients/BotSignInClient.cs

67lines · modecode

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3
4using Microsoft.Teams.Common.Http;
5
6namespace Microsoft.Teams.Api.Clients;
7
8public class BotSignInClient : Client
9{
10 public BotSignInClient() : base()
11 {
12
13 }
14
15 public BotSignInClient(IHttpClient client, CancellationToken cancellationToken = default) : base(client, cancellationToken)
16 {
17
18 }
19
20 public BotSignInClient(IHttpClientOptions options, CancellationToken cancellationToken = default) : base(options, cancellationToken)
21 {
22
23 }
24
25 public BotSignInClient(IHttpClientFactory factory, CancellationToken cancellationToken = default) : base(factory, cancellationToken)
26 {
27
28 }
29
30 public async Task<string> GetUrlAsync(GetUrlRequest request)
31 {
32 var query = QueryString.Serialize(request);
33 var req = HttpRequest.Get(
34 $"https://token.botframework.com/api/botsignin/GetSignInUrl?{query}"
35 );
36
37 var res = await _http.SendAsync(req, _cancellationToken);
38 return res.Body;
39 }
40
41 public async Task<SignIn.UrlResponse> GetResourceAsync(GetResourceRequest request)
42 {
43 var query = QueryString.Serialize(request);
44 var req = HttpRequest.Get(
45 $"https://token.botframework.com/api/botsignin/GetSignInResource?{query}"
46 );
47
48 var res = await _http.SendAsync<SignIn.UrlResponse>(req, _cancellationToken);
49 return res.Body;
50 }
51
52 public class GetUrlRequest
53 {
54 public required string State { get; set; }
55 public string? CodeChallenge { get; set; }
56 public string? EmulatorUrl { get; set; }
57 public string? FinalRedirect { get; set; }
58 }
59
60 public class GetResourceRequest
61 {
62 public required string State { get; set; }
63 public string? CodeChallenge { get; set; }
64 public string? EmulatorUrl { get; set; }
65 public string? FinalRedirect { get; set; }
66 }
67}