将Twilio MMS Media文件复制到我的服务器

时间:2019-04-09 17:24:33

标签: twilio mms twilio-php

我在服务器上设置了一个API端点,以便Twilio在收到SMS / MMS时通知我的服务器。

直到大约2周前,我能够使用PHP复制功能将MMS的媒体文件复制到服务器上:

copy($sourceFile, $destinationFolder.$destinationFileName);

哪里

$sourceFile = 'https://api.twilio.com/2010-04-01/Accounts/AC000000001/Messages/MM000000001/Media/ME000000001'

但是,现在,我没有获取媒体文件,而是获取描述文件的XML:

<?xml version='1.0' encoding='UTF-8'?>
<TwilioResponse>
<Media>
<Sid/>
<AccountSid>AC000000001</AccountSid>
<ParentSid/>
<ContentType/>
<DateCreated>Thu, 04 Apr 2019 15:31:30 +0000</DateCreated>
<DateUpdated>Thu, 04 Apr 2019 15:31:30 +0000</DateUpdated>
<Uri>/2010-04-01/Accounts/AC000000001/Messages/MM000000001/Media/ME000000001</Uri>
</Media>
</TwilioResponse>

我的代码没有任何变化,我找不到任何文档表明Twilio正在改变事物的工作方式。

我尝试更改为curl请求,但得到的结果相同。我还尝试使用Twilio PHP SDK并遵循以下文档:https://www.twilio.com/docs/sms/api/media-resource#default-content-type

有人对正在发生的事情/发生了什么变化以及如何解决这个问题有洞察力吗?

1 个答案:

答案 0 :(得分:0)

如果您查看

中的"ME000000001"

$sourceFile = 'https://api.twilio.com/2010-04-01/Accounts/AC000000001/Messages/MM000000001/Media/ME000000001'

,然后在XML响应的"ME000000001"

<Uri>/2010-04-01/Accounts/AC000000001/Messages/MM000000001/Media/ME000000001</Uri>

他们不同。

实际上,对于一条带有3个媒体附件的消息,XML响应将类似于:

<?xml version='1.0' encoding='UTF-8'?>
<TwilioResponse>
    <MediaList end="2" firstpageuri="/2010-04-01/Accounts/AC.../Messages/MM.../Media?Pag...>
        <Media>
            <Sid>ME...92c</Sid>
            <AccountSid>AC...3e4</AccountSid>
            <ParentSid>MM...e3d</ParentSid>
            <ContentType>image/jpeg</ContentType>
            <DateCreated>Tue, 09 Apr 2019 20:06:33 +0000</DateCreated>
            <DateUpdated>Tue, 09 Apr 2019 20:06:33 +0000</DateUpdated>
            <Uri>/2010-04-01/Accounts/AC...3e4/Messages/MM.../Media/ME...92c</Uri>
        </Media>
        <Media>
            <Sid>ME...4ac</Sid>
            <AccountSid>AC...3e4</AccountSid>
            <ParentSid>MM...e3d</ParentSid>
            <ContentType>image/jpeg</ContentType>
            <DateCreated>Tue, 09 Apr 2019 20:06:33 +0000</DateCreated>
            <DateUpdated>Tue, 09 Apr 2019 20:06:33 +0000</DateUpdated>
            <Uri>/2010-04-01/Accounts/AC.../Messages/MM.../Media/ME...4ac</Uri>
        </Media>
        <Media>
            <Sid>ME...048</Sid>
            <AccountSid>AC...3e4</AccountSid>
            <ParentSid>MM...e3d</ParentSid>
            <ContentType>image/jpeg</ContentType>
            <DateCreated>Tue, 09 Apr 2019 20:06:33 +0000</DateCreated>
            <DateUpdated>Tue, 09 Apr 2019 20:06:33 +0000</DateUpdated>
            <Uri>/2010-04-01/Accounts/AC.../Messages/MM.../Media/ME...048</Uri>
        </Media>
    </MediaList>
</TwilioResponse>

因此, 您将在<Uri>...</Uri> 的地址中找到媒体(当然以https://api.twilio.com开头)。


观察三个Uris的不同之处,因为它们指向附加到同一邮件的不同媒体。

<Uri>/2010-04-01/Accounts/AC.../Messages/MM.../Media/ME...92c</Uri>

<Uri>/2010-04-01/Accounts/AC.../Messages/MM.../Media/ME...4ac</Uri>

<Uri>/2010-04-01/Accounts/AC.../Messages/MM.../Media/ME...048</Uri>