0

我已经使用 curl 编写了一个 php 脚本来成功登录到 facebook。然后我要做的是点击我的 facebook 业务页面上的应用程序链接并下载报告。我相信正确传递 cookie 存在问题,因为当我使用 curl 跟踪链接时,我的应用程序将我重定向到通用登录页面。这是代码:

<?php
$url='url of my facebook business page';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0');
curl_setopt ($ch, CURLOPT_COOKIEJAR, dirname(__FILE__).'\cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__).'\cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

$fb=curl_exec ($ch);

$lgnrnd=preg_replace('/^.*name="lgnrnd" value="/s','',$fb);
$lgnrnd=preg_replace('/".*$/s','',$lgnrnd);

$lgnjs=preg_replace('/^.*time=/s','',$fb);
$lgnjs=preg_replace('/&amp.*$/s','',$lgnjs);

$login='lsd=AVpAg2yQ&email=myemail&pass=mypass&persistent=1&default_persistent=1&timezone=420&lgnrnd='.$lgnrnd.'&lgnjs='.$lgnjs.'&locale=en_US';

curl_setopt($ch, CURLOPT_URL, 'https://www.facebook.com/login.php?login_attempt=1');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $login);

curl_exec ($ch);


curl_setopt ($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, 'https://app.com/FacebookSignUpReport.psp?id=1');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_exec ($ch);
?>
4

0 回答 0