2010-10-02 32 views
11

Tôi đang gặp một vấn đề nhỏ với hỗn hợp nội dung trên HTTPS phân phát các trang trên trang web của chúng tôi, khi chúng tôi bao gồm các http://platform.twitter.com/widgets.jsBao gồm Twitter Widgets.js qua HTTPS

Rõ ràng Twitter không có giấy chứng nhận hợp lệ - nhưng hy vọng tôi nhầm.

Bạn có giải pháp nào cho vấn đề không. Tôi đã tìm kiếm ở đây và trên google cho một vấn đề có liên quan, và đã tìm thấy:

  1. Phục vụ các tập tin bản thân mình, thông qua HTTPS (nhưng điều này mang lại cho tôi một cái gì đó tôi sẽ cần phải duy trì)
  2. Loại trừ các tập tin từ trang của tôi, khi phân phát qua HTTPS (có nghĩa là tôi mất chức năng)

Đề xuất?

Cập nhật

Xem độ phân giải về câu trả lời được chấp nhận dưới đây.

Trả lời

5

Tất cả những gì nói ở đây trước khi không còn đúng Nguyên nhân chính, các tập tin widgets.js từ Twitter hiện đang phục vụ thông qua HTTPS với một chứng chỉ hợp lệ

Xem cho chính mình:.. https://platform.twitter.com/widgets.js

Trong khác các từ, giờ đây bạn có thể có các nút Twitter của mình hoạt động trên HTTPS mà không gặp bất kỳ sự cố nào!

+0

Cảm ơn bạn đã cập nhật. Thông tin hữu ích :) – CodeMonkey

3

Có cùng vấn đề này.

Có thể làm việc xung quanh bằng cách tạo cửa sổ bật lên javascript của riêng tôi và chuyển các tham số theo cách thủ công. Không phụ thuộc vào bất kỳ công cụ twitter bên ngoài nào.

Bạn sẽ phải tải xuống hình ảnh nút tweet và lưu nó cục bộ trên máy chủ của riêng bạn.

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

Bạn có thể sử dụng một cái gì đó như thế này để mã hóa nội dung của tweet và url nếu cần thiết: http://meyerweb.com/eric/tools/dencoder/

Đây là một mô tả về các params bạn có thể vượt qua trong URL rằng: http://dev.twitter.com/pages/tweet_button#properties

+0

Đó là một công việc xung quanh, và nó không phải là khủng khiếp. Nhưng điều này cũng có nghĩa là tôi sẽ mất chức năng, như là truy cập lại đối tượng Retweet… Nhưng một lựa chọn khả thi. Giống như nó đã được đề cập, Twitter nên nhận được một giấy chứng nhận hợp lệ. – CodeMonkey

4

Có một cách giải quyết dễ dàng hơn bằng cách sử dụng PHP không yêu cầu bảo trì, trừ khi Twitter thay đổi vị trí tệp JS của chúng.

Tạo tệp PHP trong thư mục JS của bạn, được gọi là twitter.platform.js.php hoặc gì đó dọc theo các dòng đó. Dán thông tin sau vào tệp.

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

Sau đó, bao gồm tập lệnh PHP thay vì JS của Twitter.

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

Đoạn mã trên sẽ lấy JS không an toàn của Twitter từ máy chủ của họ và hiển thị kết quả dưới dạng JavaScript mà không cảnh báo vì nó sẽ xuất phát từ trang web của bạn.

Cập nhật: Cách giải quyết ở trên không như @ paul-mcmahon được đề cập trong các nhận xét, gây ra lỗi SSL, khi sử dụng nút Theo dõi Twitter.

+1

Ngoại trừ widgets.js tải các tài nguyên khác không vượt quá https, vì vậy nó sẽ kích hoạt cảnh báo. –

+0

Tôi không nhận thấy bất kỳ cảnh báo nào khi sử dụng ý định, nhưng có thể là tôi không sử dụng toàn bộ bộ phần mềm. Tuy nhiên, nó chỉ là một cách giải quyết. Hy vọng rằng Twitter sẽ cung cấp SSL phục vụ JS sớm. –

1

tôi quản lý để giải quyết việc này bằng cách nhìn vào mã sau vào nút Theo dõi trên https://dev.twitter.com

Bạn không cần phải bao gồm các http://platform.twitter.com/widgets.js. Trên nơi bạn muốn nút Theo dõi của bạn, chỉ cần đặt như sau:

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

này cho phép bạn có một https nút Twitter Thực hiện theo mà không được thông báo nội dung hỗn hợp.

+0

Thao tác này không hoạt động, vì trang được tải trong iframe tải javascript từ http://cdn.api.twitter.com/1/users/show.json?screen_name=giveandgovisa&callback=twttr.setFollowersCount không phải là SSL và vô cùng tức giận, tôi thậm chí không cần, vì tôi không cố gắng thể hiện số lượng người theo dõi. – iopener

0

Có tập lệnh này từ miloops đó là nghĩa vụ phải cung cấp hỗ trợ Twitter SSL WITH hỗ trợ Tweet-Count.

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

Nhưng tôi vẫn nhận được cảnh báo hỗn hợp nội dung vì nó vẫn tải từ Twitter mà sau đó tải nội dung không có bảo đảm. :-(

0

Một giải pháp tốt cho loại điều này là để các thuộc tính http: hoặc https: ra khỏi các thuộc tính src hoặc href Nội dung. Thông thường, trình duyệt có thể tìm ra giao thức để sử dụng.

Trong trường hợp của bạn, bạn có thể sử dụng //platform.twitter.com/widgets.js làm url cho tệp ngay bây giờ mà Twitter phục vụ mọi thứ trên https.