Включая Twitter Widgets.js через HTTPS - PullRequest
11 голосов
/ 02 октября 2010

У меня небольшая проблема со смешанным контентом на страницах, обслуживаемых по протоколу HTTPS, на нашем сайте, когда мы включаем http://platform.twitter.com/widgets.js

Очевидно, что у Twitter нет действующего сертификата - но, надеюсь, яошибся.

У кого-нибудь из вас есть решение проблемы.Я искал здесь и в Google для связанной проблемы, и нашел:

  1. Служить файл сам, через HTTPS (но это дает мне то, что мне нужно будет поддерживать)
  2. Исключить файл из моих страниц при обслуживании через HTTPS (что означает, что я теряю функциональность)

Предложения?

Обновление

См. Резолюцию о принятом ответе ниже.

Ответы [ 6 ]

6 голосов
/ 12 декабря 2011

Все сказанное здесь уже не верно. Основной виновник, файл widgets.js из Twitter, теперь подается через HTTPS с действующим сертификатом.

Убедитесь сами: https://platform.twitter.com/widgets.js

Другими словами, теперь вы можете без проблем использовать кнопки Twitter через HTTPS!

4 голосов
/ 17 мая 2011

Существует более простой способ использования 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-скрипт вместо JS в Twitter.

<script type="text/javascript" src="/location/to/js/twitter.platform.js.php"></script>

Приведенный выше код извлечет небезопасный JS Twitter со своего сервера и отобразит вывод в виде JavaScript, а также позволит вам передавать его по SSL без предупреждений, поскольку он будет исходить от вашего сайта.

Обновление: вышеуказанный обходной путь, как упомянуто в комментариях @ paul-mcmahon, вызывает ошибки SSL при использовании кнопки Twitter Follow.

3 голосов
/ 21 октября 2010

Была такая же проблема.

Был в состоянии обойти это, создав собственное всплывающее окно 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

1 голос
/ 24 августа 2011

Мне удалось решить эту проблему, посмотрев код за кнопкой 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&amp;align=&amp;button=blue&amp;id=twitter_tweet_button_0&amp;lang=en&amp;link_color=0080A6&amp;screen_name=YOUR_TWITTER_HANDLE&amp;show_count=false&amp;show_screen_name=&amp;text_color=999999" allowtransparency="true" frameborder="0" scrolling="no" class="twitter-follow-button" style="width: 300px; height: 20px; " title=""></iframe>

Это позволяет использовать кнопку «Twitter Twitter» https без сообщения о смешанном контенте.

0 голосов
/ 28 мая 2014

Хорошим решением для такого рода вещей является исключение атрибутов http: или https: из src или href включенного содержимого. Обычно браузер может выяснить, какой протокол использовать.

В вашем случае вы можете использовать //platform.twitter.com/widgets.js в качестве URL-адреса файла, теперь, когда Twitter обслуживает вещи свыше https.

0 голосов
/ 25 августа 2011

Это скрипт из милопс , который должен обеспечивать поддержку SSL в Twitter С Поддержка Tweet-Count.

http://miloops.com/post/8138215285/implementing-ssl-tweet-button

Но я все еще получил предупреждение о смешанном контенте, потому что он все еще загружает <iframe> из Twitter, который затем загружает незащищенный контент. : - (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...