Удалить необходимо нажать «Нажмите, чтобы загрузить предварительный просмотр» для iPhone OpenGraph SMS-сообщение - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь отправить SMS-сообщения со ссылками, которые содержат изображения предварительного просмотра OpenGraph, которые будут загружаться в приложение iOS «Сообщения» и отображать миниатюру без необходимости нажимать клавишу [Нажать, чтобы загрузить предварительный просмотр].. Как этого достичь?

Для этого я отправляю текстовое SMS-сообщение на iPhone X, на котором установлена ​​iOS 10 и открывается с помощью приложения Сообщения.

Тело текстового сообщения содержитURL-адрес, указывающий на ресурс (веб-страницу HTML), тело которого содержит метаданные OpenGraph с тегом og:image.Например:

<meta property="og:image" content="https://www.apple.com/v/iphone/home/t/images/home/og.png?201610171354" />

В целях презентации мы стараемся сделать так, чтобы изображение загружалось первым и сразу, без необходимости нажимать кнопку, чтобы увидеть его ...

Ожидаемое поведение:

Expected Behavior

Фактическое поведение:

Actual Behavior

В качестве примечания, на протестированных нами клиентах Android, где поддерживается OpenGraph, изображение будет отображаться мгновенно, без запроса от пользователя что-либо делать.То же самое верно для любого другого протестированного приложения с поддержкой OpenGraph, включая Facebook.

Для справки, вот некоторые из протестированных мной методов, чтобы попытаться заставить это работать на нас (а также комбинациив нем):

  • Пробовал обслуживать изображение напрямую без промежуточных перенаправлений, также пробовал с перенаправлениями.
  • Пробовал обслуживать изображения PNG и JPG.
  • Пробовалобслуживание изображений с URL-адресов, содержащих не более 20 символов, где URL-адрес имеет параметры «.jpg» и «.png» и не содержит дополнительных параметров GET.Также пытался, когда расширения не являются частью ссылки.
  • Попытка обслуживания изображения с сервера путем прямой ссылки на его IP-адрес вместо использования имени публичного домена.
  • Попытка с параметрами GET какну, со случайными числами, чтобы каждый раз уточнить совершенно уникальный URL.
  • Попытка обслуживания изображения по HTTPS и HTTP-ссылкам.
  • Попытка обслуживания с динамически генерируемыми изображениями, что должно повлечь за собой небольшую задержкунесколько миллисекунд, пока изображение отображается и обрабатывается.
  • Пробовал принудительный сон в скрипте, который отвечает на страницу URL, а также на запрос изображения, чтобы вызвать намеренную задержку в несколько миллисекунд и экспериментировал с различными настройками длячто.
  • Попытка обслуживания изображения с различными размерами, портретом и ландшафтом, а также с очень большими и очень маленькими и другими вариантами между (50x50, 60x50 и т. д. и выше).
  • Всегда гарантируется, что размер изображения <1 МБ, но также тестируется больше.в любом случае, чтобы узнать, будут ли они работать. </li>
  • Попробовал обслуживать изображения из того же канонического источника, который телефон или служба сообщений могли уже «распознать» как «доверенные», так как мы уже загрузили предварительный просмотр из тех, кто вПрошлое (тестирование, если такая функция существует, чего, вероятно, нет).
  • Попробовал конкретно все предложения, как указано в Техническом примечании Apple «Рекомендации по предварительному просмотру ссылок в сообщениях», см. https://developer.apple.com/library/content/technotes/tn2444/_index.html
  • Попытка перемещения тегов OG за пределы <head> страницы.
  • Попытка удаления страницы всех тегов, кроме соответствующих тегов og:image.
  • Попытка удаления заголовков HTTP дляответ на GET для ресурса изображения, так что возвращается только само изображение.Попытался затем добавить обратно только заголовок Content-Type.
  • Попытался подготовить запрос к изображению, чтобы ответить различными заголовками, связанными с кешированием спецификации HTTP.
  • Попытка отправки из различныхтелефонные номера США и Австралии также пытались изменить поле «От» для самого SMS-сообщения на строки типа "VERIZON", "Verizon", "Telstra", "APPLE", "Apple", "Facebook", "Uber", "China".

  • Попытка отправки сообщений с портативного телефона, а также сСервис Twilio Messaging API.

Ничто из вышеперечисленного не работает для iPhone X.

1 Ответ

0 голосов
/ 12 июня 2019

Нет возможности сделать это с помощью SMS.Если вы отправите его как iMessage, он автоматически отобразит предварительный просмотр.

На iPhone предварительный просмотр создается на устройстве, а не на стороне сервера.Когда пользователь касается предварительного просмотра, его устройство отправляет 4 GET-запроса на сервер.Если предварительный просмотр был сгенерирован автоматически, возникнет уязвимость безопасности.Вы можете отправить текст любому пользователю iPhone и получить его IP-адрес.

С iMessages предварительный просмотр генерируется автоматически, но уязвимости безопасности нет.Устройство, отправляющее ссылку, отправляет 4 запроса GET на сервер, генерирует предварительный просмотр и затем передает предварительный просмотр получателю через iMessages.В результате, принимающему устройству не нужно отправлять запрос на сервер для генерации предварительного просмотра.И их IP-адрес не известен владельцу веб-сервера.

В приложении Google Android Messaging предварительный просмотр создается на стороне сервера.Существует один запрос GET, отправленный на веб-сервер.Но это происходит с сервера сообщений Android.Таким образом, снова владелец веб-сервера не получает IP-адрес получателя после получения текста.

...