[facebook] 캐시를 지우지 않는 Facebook Open Graph

Open Graph에서 메타 태그에 문제가 있습니다. 페이스 북이 내 메타 태그의 오래된 값을 캐싱하는 것처럼 보입니다. 속성에 대한 이전 값 og:title과는 og:url아직도 내가 이미 변경 한 경우에도 사용된다.

내 사이트의 페이지에서 Lint를 실행 했는데 다음과 같이 나타납니다.

Facebook Open Graph 린트 스크린 샷

og:titleog:url에 대한 두 개의 값이 있으며 마지막 값 이 우선합니다. 그러나 마지막 두 항목은 이 사이트에 사용한 OLD 항목 입니다. 현재이 메타 태그를 사용하고 있습니다 (HTML 소스를 볼 수 있는지 확인할 수 있습니다).

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

왜 페이스 북은 캐싱 og:titleog:url? 누구든지 같은 문제가 있습니까?



답변

  1. http://developers.facebook.com/tools/debug로 이동 하십시오
  2. 다음에 URL을 입력하십시오. fbrefresh=CAN_BE_ANYTHING

예 :

  1. http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  2. http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  3. 또는 방문 :
    http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

지난 밤에 같은 문제가 발생했으며 일부 웹 사이트 에서이 솔루션을 얻었습니다.

Facebook은 캐시 축소판을 저장합니다. 서버에서 썸네일 / 이미지를 삭제하더라도 새로 고쳐지지 않습니다. 그러나 Facebook을 사용하면fbrefresh

이게 도움이 되길 바란다.


답변

가장 많이 투표 된 질문은 매우 구식입니다.

다음은 2014 년 11 월 현재 사용해야하는 두 가지 옵션입니다 .

개발자가 아닌 경우

  1. FB 디버거를 사용하십시오 : https://developers.facebook.com/tools/debug/og/object
  2. 다시 캐시하려는 URL을 붙여 넣습니다. (og : url 태그에 포함 된 것과 동일한 URL을 사용해야합니다)
  3. 다시 스크래치 정보 가져 오기 버튼을 클릭하십시오

개발자를위한

  1. https://graph.facebook.com/?id=[YOUR_URL_HERE]&scrape=true ( https://developers.facebook.com/docs/games_payments/takingpayments#scraping 참조 )를 프로그래밍 방식으로 GET 호출 하십시오.
  2. 해당 페이지의 헤드에 포함 된 og : url 태그가 전달중인 태그와 일치하는지 확인하십시오.
  3. json 응답을 구문 분석하여 해당 URL의 공유 수를 얻을 수도 있습니다.

이미지 업데이트에 대한 추가 정보

  • og : image URL은 동일하지만 이미지가 실제로 변경된 경우 위의 작업을 수행하더라도 Facebook 스크레이퍼가이를 업데이트하거나 다시 캐시하지 않습니다. (이미지 URL 끝에? last_update = [TIMESTAMP]를 전달해도 작동하지 않습니다).
  • 나를위한 유일한 효과적인 해결 방법은 이미지에 새로운 이름을 할당하는 것입니다.

이전에 게시 한 게시물의 이미지 또는 비디오 업데이트에 관한 참고 사항 :

  • 디버거를 호출하여 페이지의 og : tags에서 변경 내용을 스크랩하면 해당 URL의 모든 이전 Facebook 공유에 여전히 이전 이미지 / 비디오가 표시됩니다. 이전 게시물을 모두 업데이트하는 방법은 없으며 보안상의 이유로 의도적으로 설계된 방식입니다. 그렇지 않으면 누군가가 사용자가 실제로하지 않은 것을 공유 한 것처럼 가장 할 수 있습니다.

답변

페이지가 많고 수동으로 새로 고치지 않으려는 경우 자동으로 수행 할 수 있습니다.

사진이있는 사용자 프로필 페이지가 있다고 가정 해 보겠습니다.

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

이것을 페이지에 추가하십시오.

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Facebook 캐시가 새로 고쳐집니다. jQuery 솔루션을 사용하는 경우 console.log에서 “response”를 살펴보십시오. “updated_time”필드 및 기타 유용한 정보가 있습니다.


답변

fbrefresh 변수를 전달하더라도 OG 축소판 그림이 새로 고쳐지지 않습니다. 자동 지우기를 기다리지 않고이를 업데이트하려면 축소판 관련 메타 태그 값의 파일 이름을 변경하고 새로 고쳐야합니다.


답변

나는 사용하여 동일한 문제가 있었다 og:image페이스 북의 디버거 또는 실제 계정을 통해 테스트를 통해 하나가 작동하지 않은 파일이나 명확한 FB 캐시의 이름을 바꾸려면, 몇 가지 시도를.

새로운 페이스 북의 가이드 라인은 이미지 크기가 1200 X 630해야한다 상태 또는 화면 비율을 가지고, 이것은 나를 위해 일한 유일한 것은이있는 이미지 사용 된 잘못된 것 같다 사각형 크기를 .

편집 * 1200 x 630을 사용하기 위해 되돌아온 몇 시간이 걸렸으며 마술처럼 작동했습니다.

또한 파일 이름을 f * ^ * kfacebook.jpg로 바 꾸었습니다. 확실하지는 않지만 기분이 좋았습니다.


답변

기본적으로 대답은 인내심입니다.)

오늘 아침 Linter를 확인했는데 중복 값없이 og : title 및 og : url이 올바르게 표시됩니다. FaceBook은 특정 간격으로 캐시를 자동으로 지 웁니다. 기다려야 해요

여기에 이미지 설명을 입력하십시오


답변

실제 URL에는 쿼리 문자열이 있었기 때문에 올바른 URL을 보풀하지 않았습니다 (봇은 다른 페이지까지 봇과 관련이 있습니다).

http://example.com/

! ==

http://example.com/?utm_campaign=foo

린터 페이지 다시 캐시하므로 기다릴 필요가 없습니다.