Я пытаюсь создать скрипт, который входит в мою учетную запись Linkbucks, чтобы получить текущую статистику.cURL войти в Linkbucks
Они обеспечивают и api, но только для создания ссылок, мне нужно, чтобы вы получали статистику.
Вещи, которые я обнаружил:
- Во-первых, вы должны оставаться зарегистрированным
- Чтобы получить статистику, веб-сайт делает Ajax вызов: https://www.linkbucks.com/Profile.aspx?task=manageLinks&action=loadPublisherStats с JSON пост, как это: { «месяц»: «09/01/2015»}.
С этим сообщением легко получить необходимую информацию, проблема в том, что мой скрипт не работает.
Я делюсь с вами кодом, поэтому, пожалуйста, помогите мне.
Любая идея или решение, или что-то еще будет оценено.
Вот мой сценарий:
<?php
$urlLogin = "https://www.linkbucks.com/Default.aspx";
$ch = getSource($urlLogin);
$fuente = curl_exec($ch);
$re = "/<input type=\"hidden\" name=\"__VIEWSTATE\" id=\"__VIEWSTATE\" value=\"(.*?)\" \\/>/";
preg_match($re, $fuente, $matches);
$re = "/<input type=\"hidden\" name=\"__EVENTVALIDATION\" id=\"__EVENTVALIDATION\" value=\"(.*?)\" \\/>/";
preg_match($re, $fuente, $validation);
$re = "/<input type=\"hidden\" name=\"__VIEWSTATEGENERATOR\" id=\"__VIEWSTATEGENERATOR\" value=\"(.*?)\" \\/>/";
preg_match($re, $fuente, $generator);
$post = array(
"ctl00\$ctl00\$phMenu\$LeftMenuBar\$ctl00\$Username" => "yourusername" ,
"ctl00\$ctl00\$phMenu\$LeftMenuBar\$ctl00\$Password" => "yourpassword" ,
"__VIEWSTATE" => $matches[1] ,
"__VIEWSTATEGENERATOR" => $generator[1] ,
"__EVENTVALIDATION" => $validation[1]
);
$data = postData($urlLogin, $post);
echo $data;
function getSource($url, $header = null) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$config['useragent'] = 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.33 (KHTML, like Gecko) Ubuntu/9.10 Chromium/13.0.752.0 Chrome/13.0.752.0 Safari/534.33';
curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']);
curl_setopt($ch, CURLOPT_REFERER, (is_null($header) ? 'https://www.google.com/' : $header));
return $ch;
}
function postData($url , $array) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($array));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_REFERER, "https://www.linkbucks.com/Default.aspx");
$server_output = curl_exec($ch);
curl_setopt($ch, CURLOPT_URL, 'https://www.linkbucks.com/Default.aspx?ReturnUrl=%2fManageLinks');
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$server_output = curl_exec($ch);
return ($server_output);
}
?>
Какую ошибку вы получаете? – enkrates
У меня не было никаких ошибок, просто код не работает, но теперь решено !! – Alberto