通过HTTPS包含Twitter Widgets.js

时间:2010-10-02 18:08:35

标签: http ssl twitter https

当我们添加http://platform.twitter.com/widgets.js

时,我在网站上的HTTPS服务网页上遇到混合内容的小问题

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

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

  1. 通过HTTPS自己提供文件(但这给了我一些我需要维护的东西)
  2. 通过HTTPS投放时,从我的网页中排除文件(这意味着我失去了功能)
  3. 建议?

    更新

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

6 个答案:

答案 0 :(得分:6)

此前所说的一切都不再适用。主要罪魁祸首是来自Twitter的widgets.js文件,现在通过HTTPS提供有效证书。

亲眼看看:https://platform.twitter.com/widgets.js

换句话说,您现在可以通过HTTPS使用Twitter按钮而不会出现任何问题!

答案 1 :(得分:4)

除非Twitter更改其JS文件位置,否则使用PHP的解决方法更容易,不需要维护。

在JS文件夹中创建一个名为twitter.platform.js.php的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在评论中提到的,当使用Twitter关注按钮时,上述解决方法会导致SSL错误。

答案 2 :(得分: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>

如果需要,您可以使用类似的内容对tweet和url的文本进行编码: http://meyerweb.com/eric/tools/dencoder/

以下是您可以传递到该网址的参数的说明: http://dev.twitter.com/pages/tweet_button#properties

答案 3 :(得分:1)

我设法通过查看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关注按钮而不显示混合内容消息。

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

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

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