You are viewing the Portuguese (Brazil) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Classifique esta página:

Automação do fluxo de trabalho com C# e ASP.NET Core

Um dos conceitos mais abstratos que você lidará ao criar sua empresa é como será o fluxo de trabalho.

Em sua essência, a configuração de um fluxo de trabalho padronizado é permitir que seus provedores de serviços (agentes, hosts, representantes de atendimento ao cliente, administradores e o restante da equipe) atendam melhor aos seus clientes.

Para ilustrar um exemplo real, vamos criar um aplicativo da web C# e ASP.NET Core MVC para localizar e reservar propriedades de férias — provisoriamente chamado Airtng.

Veja como ficará:

  1. Um host cria uma listagem de propriedades de férias
  2. Um hóspede solicita uma reserva para um estabelecimento
  3. O host recebe um SMS notificando‐o sobre a solicitação de reserva. O host pode aceitar ou rejeitar a reserva
  4. O hóspede é notificado se uma solicitação foi rejeitada ou aceita

Saiba como a Airbnb usou o Twilio SMS para simplificar a experiência de aluguel para mais de 60 milhões de viajantes em todo o mundo.

Blocos de construção do fluxo de trabalho

Usaremos a API REST da Twilio para enviar mensagens aos nossos usuários em encontros importantes. Veja um pouco mais sobre nossa API:

Loading Code Sample...
        
        

        Send messages

        Pronto para começar? Clique com ousadia no botão logo após esta frase.

        Com ousadia, clique em mim para continuar

        Autenticar usuários

        Para que esse caso de uso funcione, precisamos lidar com a autenticação. Contaremos com a ASP.NET Core Identity (Identidade ASP.NET Core) para essa finalidade.

        A identidade do usuário já usa um phone_number que será necessário para enviar notificações via SMS posteriormente.

        Loading Code Sample...
              
              

              The User model

              Em seguida, vamos dar uma olhada no modelo de propriedade de férias.

              Next

              O modelo de propriedade de férias

              Nosso aplicativo de locação obviamente exigirá a listagem de propriedades.

              A VacationProperty pertence ao User que a criou (chamaremos esse usuário de host a partir de agora) e contém apenas duas propriedades: uma Description e um ImageUrl.

              Uma VacationProperty pode ter muitas Reservations.

              Loading Code Sample...
                    
                    

                    Vacation Property Model

                    Em seguida, vamos ver como é nosso modelo de reserva.

                    Next

                    Modelo de reserva

                    O modelo Reservation está no centro do fluxo de trabalho para este aplicativo.

                    É responsável por manter o controle de:

                    • A VacationProperty a qual está associada para ter acesso. Por meio dessa propriedade, o usuário terá acesso ao número de telefone do host indiretamente.
                    • O Name e o PhoneNumber do hóspede.
                    • A Message enviada para o host durante a reserva.
                    • O Status da reserva.
                    Loading Code Sample...
                          
                          

                          The Reservation Model

                          Agora que nossos modelos estão prontos, vamos dar uma olhada no controlador que criará reservas.

                          Next

                          Criar uma reserva

                          O formulário de criação de reserva contém apenas um campo: a mensagem que será enviada ao host quando uma de suas propriedades for reservada. As demais informações necessárias para criar uma reserva são retiradas da própria VacationProperty.

                          Uma reserva é criada com um status padrão ReservationStatus.Pending. Dessa forma, quando o host retorna com uma mensagem accept ou reject, o aplicativo sabe qual reserva atualizar.

                          Loading Code Sample...
                                
                                

                                The Reservation Controller

                                Em seguida, vamos ver como enviaremos notificações via SMS ao host de aluguel de férias.

                                Enviar mensagem ao host!

                                Notificar o host

                                Quando uma reserva é criada queremos notificar o proprietário da propriedade que alguém está interessado.

                                É aqui que usamos a Twilio C# Helper Library (Biblioteca auxiliar C# da Twilio) para enviar uma mensagem por SMS para o host usando nosso número de telefone da Twilio. Como você pode ver, o envio de mensagens por SMS usando a Twilio leva requer apenas algumas linhas de código.

                                Em seguida, precisamos apenas esperar que o host envie uma resposta por SMS aceitando ou rejeitando a reserva. Então, podemos notificar o hóspede e o host sobre a atualização das informações da reserva.

                                Loading Code Sample...
                                      
                                      

                                      Notify the host

                                      Agora vamos ver como estamos lidando com as respostas do host.

                                      Next

                                      Tratamento de mensagens recebidas

                                      O controlador Sms/Handle lida com nossa solicitação recebida da Twilio e faz quatro coisas:

                                      1. Verifica a reserva pendente do hóspede
                                      2. Atualiza o status da reserva
                                      3. Responde ao host
                                      4. Envia uma notificação ao hóspede
                                      Loading Code Sample...
                                            
                                            

                                            Lidar com uma resposta do host

                                            Vamos ver com mais detalhes como os webhooks da Twilio são configurados para permitir a entrada de solicitações em nosso aplicativo.

                                            Next

                                            Solicitações recebidas da Twilio

                                            No Console da Twilio, você deve configurar o webhook de SMS para chamar o endpoint do seu aplicativo na rota Reservations/Handle.

                                            SMS Webhook

                                            Uma maneira de expor sua máquina de desenvolvimento ao mundo exterior é usando o ngrok. O URL do webhook de SMS no seu número ficaria assim:

                                            http://<subdomain>.ngrok.io/Reservations/Handle
                                            

                                            Uma solicitação recebida da Twilio vem com alguns parâmetros úteis, como um número de telefone from e o body da mensagem.

                                            Usaremos o parâmetro from para procurar o host e verificar se ele/ela tem alguma reserva pendente. Se ele/ela tiver uma mensagem pendente, usaremos o corpo da mensagem para verificar se há "aceitar" e "rejeitar".

                                            Na última etapa, usaremos o TwiML da Twilio como uma resposta para a Twilio para enviar um mensagem por SMS para o hóspede.

                                            Agora que sabemos como expor um webhook para lidar com solicitações da Twilio, vamos ver como geramos o TwiML necessário.

                                            Gerar alguns TwiML

                                            Resposta do TwiML

                                            Depois de atualizar o status da reserva, devemos notificar o host que ele confirmou ou rejeitou a reserva com êxito. Também precisamos retornar uma mensagem de erro se não houver reservas pendentes.

                                            Se a reserva for confirmada ou rejeitada, enviamos um SMS adicional para o hóspede para notificá‐lo.

                                            Usamos o verbo Message (Enviar mensagem) do TwiML para instruir o servidor Twilio a enviar as mensagens por SMS.

                                            Loading Code Sample...
                                                  
                                                  

                                                  Responder a uma mensagem

                                                  Parabéns! Você acabou de aprender a automatizar seu fluxo de trabalho com o Twilio SMS.

                                                  Em seguida, vamos ver o que mais podemos fazer com o Twilio C# SDK.

                                                  O que mais posso criar?

                                                  Para onde ir em seguida?

                                                  Se você é um desenvolvedor .NET que trabalha com a Twilio, sabe que temos muito conteúdo excelente aqui no site Docs. Aqui estão apenas algumas ideias para o próximo tutorial:

                                                  IVR (URA): Phone Tree (Árvore telefônica)

                                                  Encaminhe facilmente os autores da chamada para as pessoas e informações certas com um sistema URA (unidade de resposta audível).

                                                  Automated Survey (Pesquisa automatizada)

                                                  Colete instantaneamente dados estruturados de seus usuários com uma pesquisa realizada por uma chamada de voz ou mensagens de texto SMS.

                                                  Isso ajudou?

                                                  Obrigado por conferir este tutorial! Envie um tweet para nós em @twilio com o que você está criando!

                                                  Maylon Pedroso Kevin Segovia Daniel Erazo
                                                  Classifique esta página:

                                                  Precisa de ajuda?

                                                  Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.

                                                  Loading Code Sample...
                                                        
                                                        
                                                        

                                                        Obrigado pelo seu feedback!

                                                        Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

                                                        Enviando seu feedback...
                                                        🎉 Obrigado pelo seu feedback!
                                                        Algo deu errado. Tente novamente.

                                                        Obrigado pelo seu feedback!

                                                        thanks-feedback-gif