2015년 8월 24일 월요일

페이스북 캐시 삭제 방법(PHP API)

페이스북의 경우 최초 공유시(공유버튼, 타임라인에 URL입력등) 대상 웹사이트에 방문하여 결과값을 서버에 저장해 두고 일정기간 보관하며 이용하게 된다.

그러므로 웹사이트의 콘텐츠 내용(이미지,내용,제목)을 변경해도 페이스북의 캐시가 업데이트 되지 않는한 이미 저장되어 있던 내용을 보여준다.

일반적으로는 Open Graph Debugger 페이지에서 공개된 URL을 입력한 후 Fetch new scrape information 버튼을 클릭해서 캐시를 갱신 할 수있다. (페이스북 로그인)


이 경우 페이지가 수정될때 마다 위 페이지에 접근해서 갱신 시켜줘야 하는 단점있다.

두번째 방법으로는 페이스북 API를 사용해서 즉시 캐쉬를 갱신 할 수 있다.
https://developers.facebook.com/docs/sharing/opengraph/using-objects

간단하게 POST 방식으로 
https://graph.facebook.com 로 id와 scrape 값만 보내주면 된다.

예) PHP 의 curl 사용 예제
$url = 'https://graph.facebook.com';
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
$params = array(
'id' => 'http://domain.com/page-url/',
'scrape' => true
);
$data = http_build_query($params);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec( $ch );
$httpCode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );

조금만 응용하면 자바스크립트로도 가능하다.(이건 안해봄)

2015년 8월 21일 금요일

본문에 포함된 scrtip 태그 제거하기(정규식)

본문 내용안에 포함된 자바스크립트 삭제 정규식

preg_replace("/<script(.*?)>(.*?)<\/script>/is","",$input);

입맛에 따라 style 태그 제거등으로 활용 가능