Llamando a un flujo de Power Automate desde .NET

En este tutorial aprenderemos a llamar un flujo de Power Automate desde .NET, por medio de un HTTP post. Para este objetivo, utilizaremos un ejemplo para enviar un correo electrónico.

Este es el flujo creado en Power Automate:

Aquí podemos ver el…


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Daniel Gomez Jaramillo

En este tutorial aprenderemos a llamar un flujo de Power Automate desde .NET, por medio de un HTTP post. Para este objetivo, utilizaremos un ejemplo para enviar un correo electrónico.

Este es el flujo creado en Power Automate:

Power Automate Flow

Aquí podemos ver el proceso para crearlo: https://www.c-sharpcorner.com/article/run-a-power-automate-flow-with-an-http-request/

1. Implementación en .NET

En primera instancia, debemos hacer referencia al endpoint de nuestro flujo de Power Automate:

Power Automate endpoint

private string uri = "HTTP POST URL";

Luego podemos definir un método en un servicio por ejemplo para poder llamarlo desde alguna parte de nuestra aplicación, y este recibirá como parámetros el username, toAddress, y el emailSubject. La idea con este método es poder preparar la solicitud para el HTTP post, y que el flujo de Power Automate se pueda desencadenar:

public async Task SendEmailAsync(string username, string toAddress, string emailSubject)
{
    try
    {
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri(uri);
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, client.BaseAddress);
        var body = $"{{\"emailAddress\": \"{toAddress}\",\"emailSubject\":\"{emailSubject}\",\"userName\":\"{username}\"}}";
        var content = new StringContent(body, Encoding.UTF8, "application/json");
        request.Content = content;
        var response = await MakeRequestAsync(request, client);
        Console.WriteLine(response);

    }
    catch (Exception e)
    {
        Console.WriteLine(e.Message);
        throw new Exception();
    }
}

Finalmente, podemos contar con un método adicional para poder realizar el HTTP post request, de acuerdo con la solicitud establecida previamente:

public async Task<string> MakeRequestAsync(HttpRequestMessage getRequest, HttpClient client)
{
    var response = await client.SendAsync(getRequest).ConfigureAwait(false);
    var responseString = string.Empty;
    try
    {
        response.EnsureSuccessStatusCode();
        responseString = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
    }
    catch (HttpRequestException)
    {
        // empty responseString
    }

    return responseString;
}

2. Pruebas con este código en una aplicación web con ASP.NET.

Para realizar las pruebas, vamos a ver un ejemplo en una aplicación web desde ASP.NET que llama a este servicio de Power Automate implementado, para cuando un usuario es agregado desde un formulario, y notificado por correo electrónico con este flujo:

await new PowerAutomateService().SendEmailAsync(student.FirstName, student.Email, "Greetings from ASP.NET / DotVVM web application.");

.NET web form

Results in the email

Gracias!

Espero que te haya gustado el artículo. Si tienes alguna pregunta o idea en mente, será un gusto poder estar en comunicación e intercambiar conocimientos entre sí.

Nos vemos en Twitter / esDanielGomez.com!


This content originally appeared on DEV Community 👩‍💻👨‍💻 and was authored by Daniel Gomez Jaramillo


Print Share Comment Cite Upload Translate Updates
APA

Daniel Gomez Jaramillo | Sciencx (2023-01-12T20:04:28+00:00) Llamando a un flujo de Power Automate desde .NET. Retrieved from https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/

MLA
" » Llamando a un flujo de Power Automate desde .NET." Daniel Gomez Jaramillo | Sciencx - Thursday January 12, 2023, https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/
HARVARD
Daniel Gomez Jaramillo | Sciencx Thursday January 12, 2023 » Llamando a un flujo de Power Automate desde .NET., viewed ,<https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/>
VANCOUVER
Daniel Gomez Jaramillo | Sciencx - » Llamando a un flujo de Power Automate desde .NET. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/
CHICAGO
" » Llamando a un flujo de Power Automate desde .NET." Daniel Gomez Jaramillo | Sciencx - Accessed . https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/
IEEE
" » Llamando a un flujo de Power Automate desde .NET." Daniel Gomez Jaramillo | Sciencx [Online]. Available: https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/. [Accessed: ]
rf:citation
» Llamando a un flujo de Power Automate desde .NET | Daniel Gomez Jaramillo | Sciencx | https://www.scien.cx/2023/01/12/llamando-a-un-flujo-de-power-automate-desde-net/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.