C# Twilio Whatsapp 入站消息 return a MediaUrl

C# Twilio Whatsapp Inbound Message return a MediaUrl

我有一条带有快速回复按钮的消息要发送给我的用户。快速回复按钮只是说接受。一旦用户点击它,我的服务器就应该 return 一个 link 到一个文件给他们。

到目前为止效果很好。但是,我注意到 url 纯粹作为文本 url 发送,而不是作为文件解析。有没有办法让 Api 知道我希望它被解析为文件而不是文本?

url 的结构如下:https://location.website.com/filename.pdf

这是我的入站消息功能代码:

[HttpPost("InboundMessage")]
[Consumes("application/x-www-form-urlencoded")]
public TwiMLResult InboundMessage([FromForm] WhatsappInboundMessage Input)
{
    var em = whatsappMessageLogData.GetAll(Input.From, TenantId);
    if (em.Count > 0)
    {
        em = em.OrderByDescending(x => x.CreatedOn).ToList();
        var latestItem = em.FirstOrDefault();
        var difference = (DateTime.Now - latestItem.CreatedOn).TotalHours;
        if (difference < 2)
        {
            var message = new Message();
            message.Body($"You can also access the file here: {latestItem.FileAccessLink}");
            message.Media(link);
            response.Append(message);
            return TwiML(response);
        }

    }
    var res = whatsappIMData.Save(Input);
    response.Message(res);
    return TwiML(response);
}

这是 twiml 响应。我只得到 url.

<?xml version="1.0" encoding="utf-8"?>
<Response>
  <Message>
    <Body>You can also access the file here: https://localhost:44332/FileReads/Read?Key=bD4PgsE0Vqq4yMnA5S43WTourBmh3I</Body>
    <Media>https://www.filelink.pdf</Media>
  </Message>
</Response>

这里是 Twilio 开发人员布道者。

要将 return 文件作为媒体附件,您应该在 <Message>:

中嵌套一个 <Media> 元素
        if (difference < 2)
        {
            var message = new Message();
            message.Media(latestItem.Link);
            message.Body("Here's the latest items's link");
            response.Append(message);
            return TwiML(response);
        }

有关更多详细信息和示例,请参阅 the documentation for <Message>