问题 通过HTTPS包含Twitter Widgets.js


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

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

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

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

建议?

更新

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


6561
2017-10-02 18:08


起源



答案:


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

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

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


5
2017-12-12 15:53



谢谢你的更新。有用的信息 :) - CodeMonkey


答案:


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

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

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


5
2017-12-12 15:53



谢谢你的更新。有用的信息 :) - CodeMonkey


使用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提供服务而不会发出警告,因为它将来自您的站点。

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


4
2018-05-17 08:05



除了widgets.js加载其他未通过https的资源,因此它将触发警告。 - Paul McMahon
我在使用意图时没有注意到任何警告,但可能是我没有使用完整的套件。但是,这只是一种解决方法。希望Twitter能尽快为SSL提供SSL服务。 - Byron Rode


有同样的问题。

能够通过制作我自己的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>

如果需要,您可以使用类似的内容来编码推文和网址的文本: http://meyerweb.com/eric/tools/dencoder/

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


3
2017-10-20 22:19



这是一种解决方案,而且并不可怕。但这也意味着我将失去功能,如转推计数器等。但这是一个可行的选择。就像它被提到的那样,Twitter应该获得有效的证书。 - CodeMonkey


我设法通过查看Follow按钮后面的代码来解决这个问题 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关注按钮,而不显示混合内容消息。


1
2017-08-24 12:33



这也不起作用,因为iframe中加载的页面加载了javascript cdn.api.twitter.com/1/users/... 这不是SSL,令人愤怒的是,我甚至都不需要,因为我并不想显示追随者的数量。 - iopener


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

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

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


0
2017-08-24 23:11





对于这种事情的一个很好的解决方案是离开 http:要么 https: 出来的 src要么 href 包含内容的属性。通常,浏览器可以确定使用哪种协议。

在您的情况下,您可以使用 //platform.twitter.com/widgets.js 现在Twitter作为文件的URL提供服务 https


0
2018-05-28 14:38