Я видел эти приложения на Facebook до того, как они позволили вам следить за тем, кто вас защищает.К сожалению, они были удалены.Возможно, потому что Facebook не любит показывать «негативные» вещи.Поэтому я пытаюсь написать PHP-скрипт для извлечения всех моих друзей из Facebook, сохранения их в базе данных, и при следующем запуске скрипта, который забирает всех моих друзей, он сравнивает их с уже сохраненными.в базе данных.
Поскольку я буду использовать это строго локально, я не хочу создавать приложение для него на Facebook и, следовательно, я не могу использовать API Facebook (так как у меня нет ключа).
Итак, как мне получить доступ ко всем моим друзьям?Мне удалось использовать cURL для входа в Facebook и перенаправить меня на http://www.facebook.com/friends/?everyone&ref=tn. К сожалению, в нем не перечислены все, и, кроме того, по умолчанию выбран «Недавно взаимодействовал».Тем не менее, выбор только имен друзей работает отлично.
Как бы я использовал cURL для:
1) Выберите «Все друзья» из выпадающего списка (я думаю, что это делается через JS или AJAXпоэтому я не уверен, как cURL справляется с этим)
2) Уметь использовать cURL для какой-то прокрутки различных страниц (все друзья разбиты на страницы).Изменение страницы не выполняется через URL (например, & page = 2, & page = 3 и т. Д.), Это либо POST-запрос, либо JS или AJAX.
Мой текущий скрипт выглядит так:
include_once('simple_html_dom.php');
$user_id = '';
$user_email = "";
$user_pass = "";
$fp = fopen("example.html", "w");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://login.facebook.com/login.php?&next=http://www.facebook.com/friends/?everyone&ref=tn');
curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($user_email).'&pass='.urlencode($user_pass).'&login=Login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
curl_exec($ch);
// So we can view the facebook-page
include('example.html');
$html = file_get_html("example.html");
$count = 0;
$found = 0;
foreach( $html->find('a') as $link )
{
$count++;
if( strpos( $link, 'profile.php?id=' ) && !strpos( $link, $user_id ) && !strpos( $link->innertext, 'img' ) )
{
$found++;
echo 'Link #' . $found . ': ' . $link->innertext;
echo '<br />';
}
}
echo $count . ' links found where ' . $found . ' links matched profile-links';
Чтобы проверить это, вам нужно
1) Скачать simple_html_dom.php из: http://simplehtmldom.sourceforge.net/
2) Создать пустой файл, example.html
3)Создайте пустой файл cookie.txt
4) И, конечно, заполните user_id, user_email и user_pass вверху, указав значения