ser que por para nombre nadie hago hacer evitar encuentren encuentre como facebook web-scraping

que - como ser invisible en facebook 2017



¿Cómo saber si la aplicación de Facebook está en una página? (4)

El enfoque que he estado usando inicialmente fue:

http_head(''http://www.facebook.com/pages/Test/'' . $input[''fb_page_id''] . ''?sk=app_'' . $input[''fb_id'']), ''HTTP/1.1 301 Moved Permanently'')

El problema con este enfoque es:

  1. Si la página no existe, Facebook devolverá 200 encabezado, en lugar de 404 (por ejemplo, http://www.facebook.com/pages/Test/DominosPizza?sk=app_311706258843058 ).
  2. Si la página tiene un nombre de usuario, esta solicitud devolverá la respuesta 301 respuesta.

Estoy construyendo un script que de vez en cuando pasa por todas las instancias de <div data-page="130414917005937" data-app="299770086775725"></div> en mi cartera. Luego verifica si la aplicación aún está en la página. Si la aplicación está en la página, proporcionará un enlace; de ​​lo contrario, deje la etiqueta tal como estaba.

Estoy buscando una solución que no requiera token de acceso.


El siguiente código lo ayudará a averiguar si la aplicación se carga a través de una página de Facebook.

<script> $(document).ready(function(){ var isInIFrame = (window.location != window.parent.location) ? true : false; if (isInIFrame == true){ //enter your code here } }); </script>


Esta es la forma oficial de averiguar si una página de Facebook tiene instalada la aplicación.

Ver http://developers.facebook.com/docs/reference/api/page/

Prueba de instalaciones de aplicaciones

Puede probar si una aplicación específica está instalada en una pestaña de perfil de página emitiendo un HTTP GET a PAGE_ID/tabs/APP_ID .

Esta solicitud funcionará para cualquier APP_ID y devolverá los campos anteriores si la aplicación está instalada en la página. Si la aplicación no está instalada en la página, esta solicitud devolverá una matriz vacía de datos [].

También puede emitir esta misma consulta con un token de acceso a la aplicación. En este caso, puede consultar cualquier PAGE_ID, y los campos anteriores se devolverán si su aplicación está instalada en la página especificada. Se devuelve una matriz de datos vacíos [] como de costumbre si la aplicación no está instalada en la página especificada.

Por lo tanto, es un simple HTTP GET para http://graph.facebook.com/PAGE_ID/tabs/APP_ID


Puede examinar la respuesta http de la página que está solicitando y buscar la cadena pagelet_app_APPID (donde APPID es el ID de la aplicación real)

esto aborda el problema 1 porque esta cadena no existirá en la página si la página solicitada no es realmente la aplicación de tabulación.

En respuesta al problema 2, en el caso de un 301, siga el redireccionamiento y busque la respuesta de la página redirigida para esta cadena.

Editado el 29/10/12

Acabo de analizar este tema un poco más. El motivo por el que la primera página no está disponible para usuarios anónimos. Esto se debe a algunas restricciones de permisos establecidas por el administrador de la página. Es debido a estas restricciones que Facebook requiere que el usuario se autentique antes de que se vea la página. Cuando utiliza cURL, Facebook ve esta solicitud como un usuario anónimo y está redirigiendo la solicitud a la página de inicio de sesión. La segunda aplicación no tiene este problema.

Para resolver esto, le sugiero que inspeccione sus cookies de Facebook después de iniciar sesión con su navegador y las envíe como parte de la solicitud de cURL.


A menos que Facebook cambie su esquema de URL, esto funciona.

Tenga en cuenta que este método emite una solicitud HEAD , en lugar de GET . Por lo tanto, no se descarga contenido. Para obtener más información sobre cómo / por qué funciona esto, consulte http://anuary.com/47/keeping-facebook-portfolio-up-to-date .

Tome nota de que si la configuración de privacidad de la página restringe a los usuarios no autenticados, debe falsificar la autenticación del usuario para que esto funcione.

$fn_is_app_on_page = function($page_id, $app_id) { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_USERAGENT => ''Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11'', CURLOPT_URL => ''https://www.facebook.com/pages/anuary/'' . $page_id . ''?sk=app_'' . $app_id, CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_HEADER => FALSE, CURLOPT_NOBODY => TRUE ]); $response = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); if($info[''http_code''] == ''404'') { return FALSE; } if(strpos($info[''url''], (string) $app_id) !== FALSE) { return TRUE; } return FALSE; }; $fn_is_app_on_page(130414917005937, 299770086775725); // TRUE $fn_is_app_on_page(1, 299770086775725); // FALSE $fn_is_app_on_page(130414917005937, 1); // FALSE