Включая Twitter Widgets.js через HTTPS
У меня небольшая проблема с смешанным контентом на обслуживаемых страницах HTTPS на нашем сайте, когда мы включаем http://platform.twitter.com/widgets.js
По-видимому, у Твиттера нет действительного сертификата - но, надеюсь, я ошибаюсь.
У любого из вас есть решение проблемы. Я искал здесь и в google для связанной проблемы, и нашел:
- Служайте файл самостоятельно, используя HTTPS (но это дает мне что-то, что мне нужно будет поддерживать)
- Исключить файл с моих страниц при обслуживании через HTTPS (что означает, что я теряю функциональность)
Предложения?
Обновление
См. резолюцию о принятом ответе ниже.
Ответы
Ответ 1
Все сказанное здесь раньше уже не так. Главный виновник, файл widgets.js
из Twitter теперь обслуживается через HTTPS с действующим сертификатом.
Смотрите сами: https://platform.twitter.com/widgets.js
Другими словами, теперь у вас есть кнопки Twitter, работающие над HTTPS без проблем!
Ответ 2
Существует более легкое обходное решение с использованием PHP, который не требует обслуживания, если Twitter не изменит местоположение своего JS файла.
Создайте файл PHP в папке JS, называемый twitter.platform.js.php или что-то в этом роде. Вставьте в файл следующее.
<?php
header('Content-type: text/javascript');
echo file_get_contents('http://platform.twitter.com/widgets.js');
?>
Затем включите PHP script вместо Twitter JS.
<script type="text/javascript" src="/location/to/js/twitter.platform.js.php"></script>
Вышеприведенный код вытащит незащищенный JS Twitter с их сервера и отобразит его как JavaScript и позволит вам обслуживать его через SSL без предупреждений, поскольку он будет происходить с вашего сайта.
Обновление: вышеописанное обходное решение, так как @paul-mcmahon, упомянутое в комментариях, вызывает ошибки SSL при использовании кнопки Twitter Follow.
Ответ 3
У этой же проблемы была проблема.
Было возможно обойти его, создав собственное всплывающее окно javascript и передав параметры в ручном режиме. Не зависит от каких-либо материалов внешнего твиттера.
Вам нужно будет загрузить изображение кнопки твиттера и сохранить его на локальных серверах.
<a href="#" onclick="window.open('http://twitter.com/share?text=your%20tweet&url=yoururl.com','Tweeter','menubar=no,width=550,height=450,toolbar=no'); return false;"><img src="/images/tweet.png"></a>
Вы можете использовать что-то вроде этого, чтобы закодировать текст твита и url, если необходимо:
http://meyerweb.com/eric/tools/dencoder/
Вот описание параметров, которые вы можете передать этому URL:
http://dev.twitter.com/pages/tweet_button#properties
Ответ 4
Мне удалось решить эту проблему, посмотрев код, стоящий за кнопкой Follow на https://dev.twitter.com
Вам не нужно включать http://platform.twitter.com/widgets.js.
На том месте, где вы хотите использовать кнопку Follow, просто поставьте следующее:
<iframe src="https://dev.twitter.com/widgets/follow_button_dtc.html#_=YOUR_TWITTER_ID&align=&button=blue&id=twitter_tweet_button_0&lang=en&link_color=0080A6&screen_name=YOUR_TWITTER_HANDLE&show_count=false&show_screen_name=&text_color=999999" allowtransparency="true" frameborder="0" scrolling="no" class="twitter-follow-button" style="width: 300px; height: 20px; " title=""></iframe>
Это позволяет вам иметь кнопку https Twitter Follow без сообщения о смешанном контенте.
Ответ 5
Существует этот script из miloops, который должен предоставить поддержку SSL Twitter с поддержкой Tweet-Count.
http://miloops.com/post/8138215285/implementing-ssl-tweet-button
Но у меня все еще есть предупреждение о смешанном содержании, потому что он все еще загружает <iframe>
из Twitter, который затем загружает необеспеченный контент.: - (
Ответ 6
Хорошим решением для такого рода вещей является оставить http:
или https:
из атрибутов src
или href
включенного содержимого. Обычно браузер может определить, какой протокол использовать.
В вашем случае вы можете использовать //platform.twitter.com/widgets.js
в качестве URL файла для файла, который теперь щелкает Twitterу https
.