Facebook Sharer 캐시를 지우는 방법?


116

링크를 사용했습니다.

http://www.facebook.com/sharer.php?u=[shared URL]

... 특정 페이지를 공유합니다. 그러나 Facebook Sharer는 캐시 된 버전의 이미지와 제목을 사용합니다. Facebook 캐시를 빠르게 지우는 방법이 있습니까? 아니면 데이터가 업데이트 될 때까지 얼마나 기다려야합니까?

나는 <link rel='image_src' href='[preview image]' />태그 사이에 배치 했습니다.

답변:


237

내 문제에 대한 해결책을 찾았습니다. 이 사이트로 이동할 수 있습니다.

https://developers.facebook.com/tools/debug

... 그런 다음 공유하려는 페이지의 URL을 입력하고 "디버그"를 클릭합니다. 메타 태그의 모든 정보를 자동으로 추출하고 캐시도 지 웁니다.


1
자바 스크립트로 동일한 것을 자동으로 얻는 방법이 있습니까? 내 사이트에는 이름이 자주 변경 될 수있는 페이지가 있습니다. Facebook 캐시 재설정 24 시간을 기다리지 않고 매번 Facebook Lint를 사용할 수 없습니다. Facebook Lint에 ajax 요청을 사용하려고 시도했지만 ( 개발자 .facebook.com / tools / debug / og / object? q = ... URL로) 응답은 q 값 (위 URL에 매개 변수로 전달됨)이 Access-Control-Allow-Origin에서 허용되지 않습니다.
Giovanni Bitliner 2012 년

3
여전히 새로 고침하는 데 문제가있는 경우 URL 끝에 임의의 쿼리 문자열 매개 변수를 추가해보세요.
JD Smith

2
Fetch new scrape information버튼을 클릭하기 만하면됩니다
IvanRF

2
새 스크랩 정보를 가져 왔습니다 ... 올바른 데이터는 보이지만 공유자는 이전 데이터를 표시합니다. 우리가 할 수있는 다른 일이 있습니까?
Peege151 2016-04-04

1
공유에 표시된 이미지에 문제가있는 경우 이미지 URI를 변경해보십시오.
totymedli

10

API 사용 Facebook에서 페이지를 다시 스크랩하도록 강제하는 API가 있습니까?

$furl = 'https://graph.facebook.com';

$ch = curl_init();

curl_setopt( $ch, CURLOPT_URL, $furl );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_POST, true );
$params = array(
    'id' => '<update_url>',
    'scrape' => true );
$data = http_build_query( $params );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data );

curl_exec( $ch );
$httpCode = curl_getinfo( $ch, CURLINFO_HTTP_CODE );

10

Facebook은 각 URL을 고유 한 것으로 취급하고 해당 URL을 기반으로 페이지를 캐시하므로 최신 URL을 공유하려는 경우 가장 간단한 해결 방법은 공유되는 URL과 함께 쿼리 문자열을 추가하는 것입니다. 간단히 말해서 URL 끝에? v = 1을 추가하면됩니다. 1 대신 임의의 숫자를 사용할 수 있습니다.

모자 팁 : Umair Jabbar


각 버전에 대해 계산되므로 페이지가 수신 한 링크 수에 영향을 미칠 것이라고 생각합니다.
André Laszlo

3

나는이 두 링크가 문제 관련 항목에 대한 광범위한 토론을 가지고 있다고 생각합니다. fb : ref 전화로 현금을 클리어

fbml.refreshRefUrl

이렇게

<tt> fbml.refreshRefUrl ( "http://www.mysite.com/someurl.php")

여기 fb : ref 에서 관련 내용을 공부할 수 있습니다 . 당신을 위해 일하기를 바랍니다


3

이를 수행하는 페이지는 https://developers.facebook.com/tools/debug/ 에 있으며 다른 답변 중 일부 이후 약간 변경되었습니다.

거기에 URL을 붙여넣고 " 디버그 "를 누르십시오 . 그런 다음 URL 텍스트 필드 아래 의 " Fetch new scrape information "버튼을 누르면 모든 설정이 완료됩니다. 페이지에서 새로운 메타 태그를 가져 오지만 여전히 캐시되므로 변경할 때마다이 작업을 수행해야합니다. FB 공유 URL을 페이스 북 내에서 원하는 방식으로 포맷하기 위해 메타 태그를 사용하는 경우 이는 매우 중요합니다.


2

이 답변은 개발자를위한 것입니다.

캐시를 지우면이 웹 페이지의 새로운 공유가 OG 태그에서 제공되는 새로운 콘텐츠를 보여줍니다. 하지만 작업중인 URL의 상호 작용이 50 개 미만인 경우에만 (좋아요 + 공유). 또한 이미 Facebook에 게시 된이 웹 페이지에 대한 이전 링크에는 영향을 미치지 않습니다. Facebook에서 URL을 다시 공유 할 때만 Facebook에서 링크를 표시하는 방식이 업데이트됩니다.

catandmouse의 답변은 정확하지만 graph.facebook.com에 게시물 요청을 보내 Facebook이 OG (OpenGraph) 캐시를 지우도록 할 수도 있습니다 (이 답변 작성 당시 http와 https 모두에서 작동 함). 액세스 토큰이 필요하지 않습니다.

graph.facebook.com에 대한 게시 요청은 다음과 같습니다.

POST / HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: graph.facebook.com
Content-Length: 63
Accept-Encoding: gzip
User-Agent: Mojolicious (Perl)

id=<url_encoded_url>&scrape=true

Perl에서는 Mojo :: UserAgent 라이브러리가 HTTP 요청을 보내고받는 데 사용되는 다음 코드를 사용할 수 있습니다.

sub _clear_og_cache_on_facebook {
    my $fburl     = "http://graph.facebook.com";
    my $ua        = Mojo::UserAgent->new;
    my $clearurl  = <the url you want Facebook to forget>;
    my $post_body = {id => $clearurl, scrape => 'true'};
    my $res       = $ua->post($fburl => form => $post_body)->res;
    my $code      = $res->code;
    unless ($code eq '200') {
        Log->warn("Clearing cached OG data for $clearurl failed with code $code.");
        }
    }
}

다음 명령을 사용하여 터미널을 통해이 게시 요청을 보낼 수 있습니다.

curl -F id="<URL>" -F scrape=true graph.facebook.com

1

URL에? v = random_string을 추가합니다. 이 아이디어를 Facebook 공유와 함께 사용하는 경우 응답의 og : url 매개 변수가 공유중인 URL과 일치하는지 확인하십시오. 이것은 Google Plus에서도 작동합니다.

Facebook의 경우 https://graph.facebook.com에 게시 요청을하여 강제로 재 크롤링 할 수도 있습니다.

{id: url,
scrape: true}

이것이 바로 제가 찾던 것입니다.

Postman에서 위의 JSON을 게시하는 작업을 수행 할 수 없었지만 원시 텍스트 문자열을 게시하면 새로 고침이 발생했습니다.id=http://www.ridr.me&scrape=true
Philipp Sumi

1

방금 여기 관련 게시물에 5 초가 걸리는 간단한 솔루션을 게시했습니다. Facebook 디버거 : 전체 사이트 캐시

짧은 답변 지우기 ... 영구 링크 설정에서 worpdress 사이트의 영구 링크를 사용자 정의로 변경하십시오. 방금 밑줄을 추가했습니다.
/ _ % postname % /
그런 다음 페이스 북은 새 URL, 새 게시물로 모두 스크랩합니다.


이것은 간단하고 멋지다. 불행히도 원하지 않는 링크 이름을 남깁니다.
Garavani

0

캐시 플러그인과 함께 wordpress를 사용하는 경우 모든 캐시를 지우십시오. 또한 사용중인 이미지가 권장 페이스 북 크기 인 1200 (w) x 630 (h) 또는 600 x 315인지 확인하십시오.


0

관리되는 워드 프레스 또는 캐싱 플러그인을 사용한 경우 페이스 북 디버거 도구가 새로운 정보를 가져 오기 전에 캐시를 삭제해야합니다!

내가 변경 한 내용이 페이스 북 디버거에 24 시간 동안 표시되지 않는 이유를 알아 내기 위해 몇 주 동안 머리를 뽑아 왔습니다 !!!! 수정 사항은 WordPress 대시 보드로 이동하여 상단의 godaddy 아이콘을 클릭 한 다음 "캐시 비우기"를 클릭해야한다는 것입니다. 많은 관리 워드 프레스 호스팅 업체가 캐시를 지우는 방법을 알아 내면 황금이 될 것입니다.


Wordpress의 캐시를 지우면 도움이되지 않습니다. 적어도 나에게는.
Garavani
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.