如何使用Twilio异步发送whatsapp消息

时间:2019-12-27 22:17:41

标签: c# asp.net-core asynchronous twilio whatsapp

嗨,

我希望能够使用Twilio发送Whatsapp消息,但是我需要它是异步的。这是我的代码:

public async void EnvioWhatsapp(string TelefonoCelular)
{
    const string accountSid = "mySid";
    const string authToken = "myToken";

    TwilioClient.Init(accountSid, authToken);

    var message = MessageResource.Create
        (
                body: "Hola mundo!",
                from: new Twilio.Types.PhoneNumber("whatsapp:+myNumber"),
                to: new Twilio.Types.PhoneNumber("whatsapp:+clientNumber")
        );
}

在我的代码EnvioWhatsapp中,绿色以下划线标有消息:

“此异步方法缺少await运算符,将同步运行。请考虑使用await运算符来等待非阻塞API调用...”

我曾尝试在该方法的多个区域插入await,但到目前为止没有任何效果,是的,我一直在查看Twilio api文档,但找不到异步进行调用的方法。

谢谢您,对于西班牙的术语感到抱歉,我知道这会使阅读代码更加困难。

2 个答案:

答案 0 :(得分:1)

根据the docs,您应该使用CreateAsync

您可以将其返回为Task或等待它。无论如何都要避免使用async void签名。参见:https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/march/async-await-best-practices-in-asynchronous-programming#avoid-async-void

答案 1 :(得分:-1)

使用Task.Run()

将“发送”方法保持原样(仅在此处删除不必要的异步方法)

public void EnvioWhatsapp(string TelefonoCelular)
{
    const string accountSid = "mySid";
    const string authToken = "myToken";

    TwilioClient.Init(accountSid, authToken);

    var message = MessageResource.Create
        (
            body: "Hola mundo!",
            from: new Twilio.Types.PhoneNumber("whatsapp:+myNumber"),
            to: new Twilio.Types.PhoneNumber("whatsapp:+clientNumber")
        );
}

在您逻辑的某处,当您想发送消息时,请使用以下命令:

Task.Run(() => EnvioWhatsapp("123-123-1234"));