Непоследовательные разрывы строк при публикации в Instagram - PullRequest
0 голосов
/ 09 января 2019

Мы публикуем в Instagram; разрывы строк работают в одну сторону (js), но не работают при обработке на стороне сервера (php): почему это так?

Мы создали приложение на стороне сервера, которое создает и планирует публикации с помощью Hootsuite, а мы публикуем сообщения в Twitter, Instagram и Facebook.

Скажите, если это был пост:

Я линия 1.

Я линия 2.

Я ин 3. 3. 1011 *

Он будет отправлен в Hootsuite, а затем отправлен на соответствующую платформу; это выглядит так в Твиттере и Фейсбуке. Однако при публикации в Instagram он выглядит так:

Я линия 1. Я линия 2. Я линия 3.

Разрывы строк игнорируются (не всегда так, но первые несколько, безусловно).

Мы заметили, что если мы отправляем сообщение в Hootsuite и перед публикацией мы пропускаем текст через this : это решает проблему.

Ниже представлены два способа введения разрывов строк: (php для нашего приложения, js для связанного веб-сайта)

    <?php
    // outputted wherever line breaks are necessary
    $output .= "I am string \r\nEnd of string";
    ?>

    <script>
    // Example using the copyToClipboard() function from http://apps4lifehost.com/Instagram/CaptionMaker.html

    var str = "I am text

    End of string";
    str.replace(/(?:\r\n|\r|\n)/g, "\u2063\n");
    </script>

Метод вставки разрывов в php работает для всех других платформ и в предварительном просмотре Hootsuite, но не работает после публикации в Instagram. Однако JS один делает.

Нам нужно использовать метод PHP, чтобы сделать процесс более эффективным, так как мы можем это сделать?

Извините, если информации не хватает; проект является конфиденциальным, поэтому мы можем предоставить больше информации, если это необходимо: просто спросите, и я отредактирую вопрос.

1 Ответ

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

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

Вы можете обойти это, используя специальные символы вместо стандартных разрывов строк, например INVISIBLE SEPARATOR (U+2063). Если вы посмотрите на решение JavaScript в своем вопросе, они заменяют разрывы строк на "\u2063\n" (Невидимый разделитель, перевод строки).

Я полагаю, что вы можете повторить это в своем PHP, основываясь на этом ответе .

<?php
   $output = "I am line 1 \u{2063}\n I am line 2";
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...