2011-08-09 3 views
0

나는 여기서 잘못하고있는 것에 대한 단서를 거의 가지고 있지 않습니다. 내 머리가 엉망입니다.cURL은 facebook api 페이지를 가져옵니다.

기본적으로 일부 양식 데이터의 경우 https://www.facebook.com/dialog/stream.publish?access_token=bla-bla이 페이지를 가져오고 싶습니다. 내가 that.My 실제 코드 기반에서 PHP 컬 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; 
} 

이 내 서버에 browser.But에서 잘 감다 작업을 $는 뭔가 이렇게 ...

HTTP/쇼 1.1 200 OK Cache-Control : 비공개, 캐시 없음, 상점 없음, 유효 기간 재실행 유효 기간 : 2000 년 1 월 1 일 00:00:00 GMT P3P : CP = "Facebook은 P3P 정책이 없습니다. http://fb.me/p3p "Pragma : no-cache Set-Cookie : __utma = deleted; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : __utmb = deleted; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : __utmc = deleted; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : __utmz = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : _e_Jjuf_0 = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : c1 = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : c2_top = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : ck_expr = deleted; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : ckmsg = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : datr = vG1BThzB5emc65eco5mEIJt-; 만료 = 2011 년 8 월 8 일 17:26:20 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : fb_ss = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : fbs_undefined = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : locale = en_US; expires = Tue, 2011-08-08 17:26:20 GMT; 경로 = /; domain = .facebook.com Set-Cookie : lsd = _G6Yd; 경로 = /; domain = .facebook.com 쿠키 설정 : PHPSESSID = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Set-Cookie : wd = 삭제됨; 만료 = 1970 년 1 월 1 일 00:00:01 GMT; 경로 = /; domain = .facebook.com; httponly Content-Encoding : gzip Content-Type : text/html; charset = utf-8 X-FB-Server : 10.63.23.62 X-Connection : close Transfer-Encoding : chunked 날짜 : 2011 년 8 월 9 일 17시 26 분 20 초 GMT

그래서 내가 로그 아웃되었음을 의미합니다. 그러나 아직 브라우저에서 FB에 액세스 할 수 있습니다. CURL을 변경해야합니까? 어디서부터 시작해야할지 몰라요. : - [ 도움이 필요하시면 크게 도움을 받으실 수 있습니다.

EDIT : 코드가 업데이트되었습니다.

답변

1

일반적으로 사이트에 데이터를 보내기 위해 사용되는 POST 방법을 사용하고 있습니다. 대부분 GET을 대신 사용하려고합니다. 달리 지정하지 않으면 GET은 컬 (curl)의 기본값이므로 CURLOPT_POST 행을 제거하면됩니다.

+0

예, 맞습니다.하지만 이제는 'LOGOUT' 문제가 표시됩니다.'MyAppName에 오류가 발생했습니다. 나중에 다시 해봐 .' 왜 이래? Coz 내가 이미 액세스 토큰을 보냈어. prob는 어디 있니? ' –

+0

curl은 서버에서 실행되며 브라우저의 기능과는 완전히 별개이며 완전히 독립적이라는 것을 기억하십시오. curl을 사용하여 FB에서 로그인이 필요한 것을 가져 오려면 curl로 로그인 프로세스를 복제해야합니다. –

+0

그게 내가 무슨 말을하는지, 내가 현재 세션 사용자 n에 대해 AccessToken을 가지고 있다고 말하면서 사용자의 로그인 details.so을 모른다는 것입니다. –