2011-01-11 21 views
5

Tengo un sitio web que integra una caja de ventilador y algunas otras cosas de Facebook. para conseguir que todo se vea bien, he implementado FBML como sigue:Facebook explota mi página web

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 

que funciona realmente bien, excepto que he encontrado que la empresa de mi cliente tiene un bloque en lugar de los empleados para que no puedan acceder a Facebook. Sin embargo, esto está causando que el sitio explote y no se cargue completamente, ya que el firewall no permitirá que el código FB en este sitio se active correctamente.

Como no tengo este bloque en su lugar, tengo problemas para replicarlo de forma remota y no he sido capaz de señalar exactamente qué está haciendo que se muestre incorrectamente.

En resumen, ¿hay algo que pueda implementar en el código para verificar y ver si FB está accesible y solo activar el fbml si es así? Estoy usando PHP y Jquery principalmente para el sitio.

Gracias de antemano.

edición: Los fragmentos de código como solicitado

Desde el principio:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en"> 

Luego, dentro de la página de llamar a un FanBox:

<div id="fbbox"> 
    <script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script> 
     <div id="fb-root"> 
      <fb:fan profile_id="xxxxxxxx" width="235" height="200" connections="12" stream="false" header="false" css="http://www.xxxx.com/xxxx.css?33" ></fb:fan> 
     </div> 
    <script> 
    <!-- 
     window.fbAsyncInit = function() { 
      FB.init({appId: 'xxxxxxx', status: true, cookie: false, xfbml: true}); 
     }; 
     (function() { 
      var e = document.createElement('script'); e.async = true; 
      e.src = document.location.protocol + 
      '//connect.facebook.net/en_US/all.js'; 
      document.getElementById('fb-root').appendChild(e); 
     }()); 
    --> 
    </script> 
</div>  

he xxx'ed algunas de la configuración específica, pero puedo asegurarle que son correctos en el código real.

+0

Esta pregunta es bastante vaga. No tienes idea de qué parte de tu página está siendo bloqueada de qué manera, entonces ¿por qué debería alguien más?;-) ¿No puedes caminar hacia/remotamente a tu cliente y solucionar el problema desde allí? – Tomalak

+5

+1 por título entretenido. – dqhendricks

+0

¿Puedes obtener una captura de pantalla? Me gustaría ver este problema. – Brad

Respuesta

0

depende de cómo se bloquee el sitio. puede cargar una imagen pequeña de Facebook y luego verificar las dimensiones en javascript. para ver si resultan ser correctos. para eso sugiero usar la url permanente de su foto de perfil que obtiene de los documentos de la API, ya que no cambiará y siempre entrega una imagen del mismo tamaño (de acuerdo con los documentos).

ejemplo: http://graph.facebook.com/joseph.hopfgartner/picture

también se puede jugar con el receptor-facebook-escritura de este tipo de ataque.

Otra posibilidad es cargar algo de Facebook en un iframe. la propiedad de ubicación será (como la única propiedad) legible por su sitio. podría usar una URL que será redireccionada (como, por ejemplo, la URL de la imagen de perfil).

Sin embargo, esto fue para responder a su pregunta, pero creo que no es una solución. ¡su sitio realmente no debería "no cargarse" si algunos recursos están bloqueados!

sus atributos HTML no puede hacer que por lo que en mal estado algo más arriba

podría proporcionar más código o un enlace en su aplicación?

+0

Gracias - ¡esa es toda la información muy útil! No he jugado con el receptor Cross Site, así que también echaré un vistazo a eso. Publicaré algo del código para que lo veas también. ¡Gracias! – TH1981

+0

¿Por qué no intentas simplemente bloquear facebook tú mismo? de lo que puedes probar, la mayoría de los filtros solo funcionan bloqueando las direcciones IP. –

+0

lamentablemente, no estoy seguro de cómo hacer eso. Voy a echar un vistazo y ver si puedo resolverlo con fines de prueba. – TH1981

2

Si Facebook.com está bloqueado para el usuario, los complementos sociales no se pueden cargar y, por lo tanto, no se mostrarán en su sitio. Debe verificar si los complementos se cargan y si no reemplazan el contenido con algo que permita que su sitio continúe funcionando sin ellos.

Cuestiones relacionadas