【问题标题】:Including Twitter Widgets.js via HTTPS通过 HTTPS 包括 Twitter Widgets.js
【发布时间】:2011-04-20 07:16:32
【问题描述】:

当我们包含 http://platform.twitter.com/widgets.js 时,我在我们网站上的 HTTPS 服务页面上遇到了混合内容的小问题

显然 Twitter 没有有效的证书 -- 但希望我弄错了。

你们有没有解决这个问题的办法。我在这里和谷歌上搜索了一个相关的问题,并发现:

  1. 自己通过 HTTPS 提供文件(但这给了我需要维护的东西)
  2. 通过 HTTPS 提供服务时,从我的页面中排除该文件(这意味着我失去了功能)

建议?

更新

请参阅下面接受的答案的解决方案。

【问题讨论】:

    标签: http ssl twitter https


    【解决方案1】:

    之前所说的一切都不再正确。罪魁祸首,来自 Twitter 的 widgets.js 文件现在通过具有有效证书的 HTTPS 提供。

    自己看看:https://platform.twitter.com/widgets.js

    换句话说,您现在可以让您的 Twitter 按钮通过 HTTPS 正常工作!

    【讨论】:

      【解决方案2】:

      使用 PHP 有一个更简单的解决方法,无需维护,除非 Twitter 更改其 JS 文件位置。

      在您的 JS 文件夹中创建一个 PHP 文件,称为 twitter.platform.js.php 或类似的东西。将以下内容粘贴到文件中。

      <?php
      header('Content-type: text/javascript'); 
      echo file_get_contents('http://platform.twitter.com/widgets.js');
      ?>
      

      然后包含 PHP 脚本而不是 Twitter 的 JS。

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

      上面的代码将从他们的服务器中提取 Twitter 的非安全 JS 并将输出呈现为 JavaScript,并允许您通过 SSL 提供它而不会发出警告,因为它来自您的站点。

      更新:正如 @paul-mcmahon 在 cmets 中提到的那样,上述解决方法确实会在使用 Twitter 关注按钮时导致 SSL 错误。

      【讨论】:

      • 除了widgets.js会加载其他不通过https的资源,所以会触发警告。
      • 我在使用意图时没有注意到任何警告,但可能是我没有使用完整的套件。但是,这只是一种解决方法。希望 Twitter 能尽快提供 SSL 服务的 JS。
      【解决方案3】:

      遇到了同样的问题。

      能够通过制作我自己的 javascript 弹出窗口并手动传递参数来解决它。不依赖于任何外部 twitter 的东西。

      您还必须下载推文按钮图像并将其本地保存在您自己的服务器上。

      <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

      【讨论】:

      • 这是一种变通方法,并不可怕。但这也意味着我将失去功能,如转推计数器等。但这是一个可行的选择。就像前面提到的那样,Twitter 应该获得一个有效的证书。
      【解决方案4】:

      我通过查看https://dev.twitter.com 上的“关注”按钮后面的代码设法解决了这个问题

      您不需要包含http://platform.twitter.com/widgets.js。 在您想要关注按钮的地方,只需输入以下内容:

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

      这允许您拥有一个没有混合内容消息的 https Twitter 关注按钮。

      【讨论】:

      • 这也不起作用,因为 iframe 中加载的页面从cdn.api.twitter.com/1/users/… 加载不是 SSL 的 javascript,而且令人愤怒的是,我什至不需要,因为我没有尝试显示关注者数量。
      【解决方案5】:

      miloops 中的这个脚本应该提供 Twitter SSL 支持 WITH Tweet-Count 支持。

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

      但我仍然收到混合内容警告,因为它仍然从 Twitter 加载 &lt;iframe&gt;,然后加载不安全的内容。 :-(

      【讨论】:

        【解决方案6】:

        解决此类问题的一个好方法是将http:https: 排除在包含内容的srchref 属性之外。通常浏览器可以确定使用哪个协议。

        在您的情况下,您可以使用 //platform.twitter.com/widgets.js 作为文件的 URL,因为 Twitter 通过 https 提供内容。

        【讨论】:

          猜你喜欢
          • 2017-12-15
          • 2015-06-22
          • 1970-01-01
          • 2012-02-10
          • 2023-03-19
          • 1970-01-01
          • 2023-03-28
          • 2011-11-23
          • 2020-10-25
          相关资源
          最近更新 更多