CURL получить страницу API Facebook - PullRequest
0 голосов
/ 09 августа 2011

Я даже не имею ни малейшего представления о том, что я делаю здесь неправильно. Моя голова все испортила.

Итак, я хочу получить https://www.facebook.com/dialog/stream.publish?access_token=bla-bla эту страницу для некоторых данных формы. Я использую php cURL lib для этого. Моя база кода выглядит как -

$furl='https://www.facebook.com/dialog/stream.publish?access_token=bla-bla&other-pram';
$cookie_string="";
foreach( $_COOKIE as $key => $value ) {
  $cookie_string .= "$key=$value;";
};
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$furl);
curl_setopt ($curl, CURLOPT_REFERER,'my domain');
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
curl_setopt ($curl, CURLOPT_COOKIE,$cookie_string); 
curl_setopt($curl, CURLOPT_ENCODING, "");
$buffer = curl_exec($curl);
curl_close($curl);
//var_dump($buffer);
if (empty($buffer))
{
    print "Sorry,no content.";
}
else
{
    print $buffer;
}

Этот $ furl отлично работает в браузере. Но на моем сервере он показывает что-то вроде -

HTTP / 1.1 200 OK Cache-Control: частный, без кэширования, без сохранения, необходимо повторно подтвердить Срок действия: сб, 01 января 2000 00:00:00 GMT P3P: CP = "Facebook не имеет политики P3P Узнайте, почему здесь: http://fb.me/p3p" Прагма: без кэширования Set-Cookie: __utma = удалено; истекает = четверг, 01 января 1970 г. 00:00:01 по Гринвичу; путь = /; домен = .facebook.com ; httponly Set-Cookie: __utmb = удалено; expires = Четверг, 01 января 1970 г. 00:00:01 GMT; путь = /; домен = .facebook.com; httponly Set-Cookie: __utmc = удалено; expires = Чт, 01 января 1970 г. 00:00:01 по Гринвичу; путь = /; домен = .facebook.com; набор файлов cookie httponly: __utmz = удален; истекает = чт, 01 января 1970 г. 00:00:01 по Гринвичу; путь = /; domain = .facebook.com; httponly Set-Cookie: _e_Jjuf_0 = удалено; срок действия истекает четверг, 01 января 1970 г. 00:00:01 GMT; путь = /; domain = .facebook.com; httponly Set-Cookie: c1 = удалено; истекает = четверг, 01 января 1970 г. 00:00:01 по Гринвичу; путь = /; домен = .facebook.com; httpsly Set-Cookie: c2_top = удалено; истекает = чт, 01 января 1970 г. 00 : 00: 01 GMT; путь = /; домен = .facebook.com; httponly Set-Cookie: ck_expr = удалено; expires = чт, 01-J an-1970 00:00:01 GMT; Путь = /; домен = .facebook.com; httponly Set-Cookie: ckmsg = удалено; истекает = чт, 1 января 1970 г. 00:00:01 по Гринвичу; Путь = /; домен = .facebook.com; httponly Set-Cookie: datr = vG1BThzB5emc65eco5mEIJt-; истекает = чт, 8 августа 2013 г. 17:26:20 мск; Путь = /; домен = .facebook.com; httponly Set-Cookie: fb_ss = удалено; истекает = чт, 1 января 1970 г. 00:00:01 по Гринвичу; Путь = /; домен = .facebook.com; httponly Set-Cookie: fbs_undefined = удалено; истекает = чт, 1 января 1970 г. 00:00:01 по Гринвичу; Путь = /; домен = .facebook.com; httponly Set-Cookie: locale = en_US; истекает = вторник, 16 августа 2011 г. 17:26:20 GMT; Путь = /; domain = .facebook.com Set-Cookie: lsd = _G6Yd; Путь = /; домен = .facebook.com Set-Cookie: PHPSESSID = удалено; истекает = чт, 1 января 1970 г. 00:00:01 по Гринвичу; Путь = /; домен = .facebook.com; httponly Set-Cookie: wd = удалено; истекает = чт, 1 января 1970 г. 00:00:01 по Гринвичу; Путь = /; домен = .facebook.com; httponly Content-Encoding: gzip Content-Type: text / html; charset = utf-8 X-FB-Server: 10.63.23.62 X-Cnection: закрыть Transfer-Encoding: chunked Дата: вторник, 09 августа 2011 г. 17:26:20 GMT

Так что это значит, что я ЗАПИСАНО. Но все же я могу получить доступ к FB из браузера. Нужно изменить cURL ?? Я даже не понимаю, с чего начать искать ...: - [ Мы будем благодарны за любую помощь.

РЕДАКТИРОВАТЬ: код обновлен.

1 Ответ

1 голос
/ 09 августа 2011

Вы используете метод POST, который обычно используется для отправки данных на сайт. Скорее всего, вы хотите использовать вместо GET. Поскольку GET является значением по умолчанию для curl, если вы не укажете иное, просто удалите строку CURLOPT_POST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...