2010-10-02 20 views
11

Estoy teniendo un problema menor con contenido mixto en HTTPS sirvió páginas de nuestro sitio, cuando incluimos el http://platform.twitter.com/widgets.jscomo Twitter Widgets.js a través de HTTPS

Al parecer, Twitter no tiene un certificado válido - pero ojalá me equivoque.

Alguno de ustedes tiene una solución al problema. He buscado aquí y en google para un problema relacionado, y he encontrado:

  1. servir al mismo archivo, a través de HTTPS (pero esto me da algo que voy a necesitar para mantener)
  2. excluir el archivo de mis páginas, al servir a través de HTTPS (lo que significa que pierdo funcionalidad)

Sugerencias?

actualización

Véase la resolución en respuesta aceptada a continuación.

Respuesta

5

Todo lo dicho aquí antes ya no es cierto El principal culpable, el archivo widgets.js de Twitter está servida a través de HTTPS con un certificado válido

Vea usted mismo:.. https://platform.twitter.com/widgets.js

En otra es decir, ahora puede tener sus botones de Twitter de trabajo a través de HTTPS sin ningún problema!

+0

Gracias por la actualización. Información útil :) – CodeMonkey

3

Tenía este mismo problema.

Pude solucionar el problema haciendo mi propia ventana emergente de Javascript y pasando los parámetros manualmente. No depende de ningún material externo de Twitter.

Tendrá que descargar la imagen del botón de tweet y guardarla localmente en sus propios servidores tambié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> 

se puede usar algo como esto para codificar el texto del tweet y URL si es necesario: http://meyerweb.com/eric/tools/dencoder/

Aquí es una descripción de los parametros se puede pasar a esa URL: http://dev.twitter.com/pages/tweet_button#properties

+0

Es una solución temporal, y no es terrible. Pero esto también significa que perderé la funcionalidad, como el contador Retweet, etc. Pero es una opción viable. Al igual que se ha mencionado, Twitter debería obtener un certificado válido. – CodeMonkey

4

Hay una solución más fácil usando PHP que no requiere mantenimiento, a menos que Twitter cambie su ubicación de archivo JS.

Cree un archivo PHP en su carpeta JS, llamado twitter.platform.js.php o algo similar. Pega lo siguiente en el archivo.

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

A continuación, incluya el script PHP en lugar de Twitter JS.

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

El código anterior se tire no seguro JS de Twitter desde su servidor y hacer que la salida como JavaScript y le permitirá servirlo a través de SSL y sin las advertencias, ya que se originará en su sitio.

Actualización: La solución anterior, como @ paul-mcmahon mencionado en los comentarios, causa errores de SSL cuando se usa el botón Seguir de Twitter.

+1

Excepto widgets.js carga otros recursos que no superan https, por lo que activará advertencias. –

+0

No he notado ninguna advertencia al usar los intentos, pero puede ser que no esté usando el conjunto completo. Sin embargo, es solo una solución. Es de esperar que Twitter ofrezca SSL servido JS pronto. –

1

que logró resolver esto mirando el código detrás del botón Seguir en https://dev.twitter.com

No es necesario incluir el http://platform.twitter.com/widgets.js. En el lugar donde desea que el botón Seguir, en pocas palabras lo siguiente:

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

Esto le permite tener un botón de https Twitter Sigue sin el mensaje de contenido mixto.

+0

Esto tampoco funciona, ya que la página cargada en el iframe carga javascript desde http://cdn.api.twitter.com/1/users/show.json?screen_name=giveandgovisa&callback=twttr.setFollowersCount que no es SSL , y exasperantemente, ni siquiera necesito, ya que no estoy tratando de mostrar el conteo de seguidores. – iopener

0

Una buena solución para este tipo de cosas es dejar el http: o https: de los src o atributos de href incluido contenido. Por lo general, el navegador puede averiguar qué protocolo usar.

En su caso, puede usar //platform.twitter.com/widgets.js como la url del archivo ahora que Twitter sirve cosas sobre https.

Cuestiones relacionadas