Копирование файлов Twilio MMS Media на мой сервер - PullRequest
0 голосов
/ 09 апреля 2019

На моем сервере настроена конечная точка API для Twilio, чтобы уведомлять мой сервер о получении SMS / MMS.

Примерно до 2 недель назад я мог копировать мультимедийные файлыMMS на мой сервер с помощью функции PHP Copy:

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 изменил то, как все работает.

Я попытался перейти наскручиваю запрос и получаю тот же результат.Я также попытался использовать Twilio PHP SDK и следуя этой документации: https://www.twilio.com/docs/sms/api/media-resource#default-content-type

Кто-нибудь знает, что происходит / что изменилось и как это обойти?

1 Ответ

0 голосов
/ 09 апреля 2019

Если вы посмотрите на "ME000000001" от

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

и затем в "ME000000001" из XML-ответа

<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>
...