2010-10-02 112 views
11
我在与HTTPS混合内容的小问题,担任我们的网站页面,当我们包括 http://platform.twitter.com/widgets.js

包括Twitter Widgets.js通过HTTPS

显然Twitter的没有一个有效的证书

- 但希望我错了。

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

  1. 提供服务的文件喽,通过HTTPS(但是这给我的东西,我需要保持)
  2. 排除从文件我的页面,当通过HTTPS服务(这意味着我失去了功能)

建议?

更新

下面接受的答案见第。

回答

5

这里的一切说不再是真实的之前的主要元凶,从Twitter的widgets.js文件通过HTTPS现在送达的有效证书

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

在其他也就是说,你现在可以有你的Twitter按钮的工作通过HTTPS没有任何问题!

+0

感谢您的更新。有用的信息 :) – CodeMonkey 2011-12-17 20:14:45

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/

这里是PARAMS的描述,你可以在传递给网址: http://dev.twitter.com/pages/tweet_button#properties

+0

这是一个解决方法,它并不可怕。但这也意味着我会失去功能,如Retweet计数器等,但一个可行的选择。就像它已经提到的那样,Twitter应该得到一个有效的证书。 – CodeMonkey 2010-11-05 15:45:06

4

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

在你的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没有警告,因为它会从您的网站起源。

更新:上述解决方法在使用Twitter Follow按钮时会像注释中提到的@ paul-mcmahon一样导致SSL错误。

+1

除widgets.js加载其他未通过https的资源外,所以会触发警告。 – 2011-06-09 07:42:18

+0

使用意图时我没有注意到任何警告,但可能是因为我没有使用完整的套件。但是,这只是一个解决方法。希望Twitter能尽快提供SSL服务的JS。 – 2011-06-10 09:08:57

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遵循按钮不被混合的内容信息。

+0

这也不起作用,因为加载在iframe中的页面加载了来自http://cdn.api.twitter.com/1/users/show.json?screen_name=giveandgovisa&callback=twttr.setFollowersCount并且不是SSL的javascript ,并且令人气愤的是,我甚至不需要,因为我没有试图显示跟随者的数量。 – iopener 2011-09-11 05:16:18

0

对于这种事情一个好的解决办法就是离开http:https:出包括srchref属性内容。通常浏览器可以找出使用哪种协议。

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