收到 20001 错误:尝试从 Twilio WhatsApp 对话 API 下载媒体时消息 SID 无效

问题描述 投票:0回答:1

我正在我的 ASP.NET Core 8 应用程序中将 Twilio WhatsApp 与 Twilio Conversation API 集成。我能够检索消息和媒体详细信息,但当我尝试使用生成的 URL 下载媒体时,出现以下错误:

<TwilioResponse>
  <RestException>
    <Code>20001</Code>
    <Message>Invalid message sid: IMe6a9630de0df4c5c90f3b74a844a5d3c</Message>
    <MoreInfo>https://www.twilio.com/docs/errors/20001</MoreInfo>
    <Status>400</Status>
  </RestException>
</TwilioResponse>

问题: 当我尝试从 Twilio 下载媒体时,错误消息表明 message.Sid 无效。我已验证我使用的是响应中提供的正确的 message.Sid 和 mediaSid,但我仍然无法检索媒体。 ** 我已采取的步骤:** 仔细检查 message.Sid 和 mediaSid 以确保它们正确。 确保我的 Twilio 帐户 SID 和身份验证令牌已正确设置以进行身份验证。 根据文档,在下载 URL 中使用媒体 SID。 问题: 谁能帮助解释为什么我收到 20001 错误,以及如何在 WhatsApp 集成中成功从 Twilio 的 API 下载媒体?

.net asp.net-core-mvc twilio twilio-programmable-chat twilio-conversations
1个回答
0
投票

我在 Spring Boot / Kotlin 服务中遇到了这个问题。事实证明,我通过消息 ID 检索媒体时访问了错误的端点。

相反,我需要点击特定于对话的端点:

GET /Services/{Chat Service SID}/Media/{Media SID}

详细说明在这里:

https://www.twilio.com/docs/conversations/api/media-resource#retrieve-a-media-resource

正确连接后,我终于开始获取一些有用的信息,包括媒体资源本身的签名 URL。

{
    "sid": "MEXXXXXXXXXXXXXXXXX",
    "service_sid": "ISXXXXXXXXXXXXXXXXXXXXXXX",
    "date_created": "2024-11-19T23:00:18.795324Z",
    "date_upload_updated": "2024-11-19T23:00:18.799154Z",
    "date_updated": "2024-11-19T23:00:18.795324Z",
    "links": {
        "content": "/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXX/Media/MEXXXXXXXXXXXXXXXXX/Content",
        "content_direct_temporary": "https://media.us1.twilio.com/MEXXXXXXXXXXXXXXXXX?Expires=1732060217&Signature=blahblahblah"
    },
    "size": 55795,
    "content_type": "image/jpeg",
    "filename": "123_1.jpeg",
    "author": null,
    "category": "media",
    "message_sid": "IMXXXXXXXXXXXXXXXXXXXXXX",
    "channel_sid": "CHXXXXXXXXXXXXXXXXXXXXXXX",
    "url": "/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXX/Media/MEXXXXXXXXXXXXXXXXX",
    "is_multipart_upstream": false
}

Hopefully that's easily enough to set up in your .NET project.
© www.soinside.com 2019 - 2024. All rights reserved.