[ php ] facebook sharer를 이용할 경우 부가 메타데이터 넣는 방법 > php

본문 바로가기
사이트 내 전체검색

php

[ php ] facebook sharer를 이용할 경우 부가 메타데이터 넣는 방법

페이지 정보

작성자 웹지기 댓글 0건 조회 15,353회 작성일 18-09-19 15:50

본문

페이스북 쉐어러를 사용할때는

http://www.facebook.com/sharer/sharer.php?u=공유할 url 만 입력하면 된다.


하지만,

해당 URL에 대한 대표 이미지나, 설명같은 것은 무작위 또는 가장 강조되는 테그를 가져오기때문에

목적이 그냥 특정 URL을 공유하는 것이라면 상관없지만 이게아니라면

의도치않은 결과가 나올 수 있다.

  

이런 부분을 해소하기 위해서 페이스북에서는 메타데이터를 이용해 특정 정보를 가져온다.


추가할 수 있는 메타 데이터들에는 url, type, title, description, image가 있다.

추가하는 방법은 head에 메타데이터를 넣으면 되는데 og: prefix를 통해 페이스북이 데이터를 긁어간다.


<meta property="og:title" content="페이지정보" />

<meta property="og:image" content="상품이미지 사진" />

<meta property="og:description" content="상품설명 넣는부분" />

<meta property="og:type" content="website" />

위처럼 넣으면

해당 데이터를 긁어서 쉐어러정보가 들어간다.


하지만 이런식으로 넣어도 쉐어러에 들어가는 정보에 대한 캐쉬를 남기기 때문에

같은 URL에서는 동일한 정보를 가져온다.

한달에 한번정도 갱신이 되는거라서 실시간 반영하는 방법을 찾는도중에

http://developers.facebook.com/tools/debug/og/object

을 이용하면 실시간으로 갱신이 되는것을 알게되었다.


http://developers.facebook.com/tools/debug/og/object?q=특정 url 을 이용하면 해당 URL 을 거친것과 같은 결과를 내므로

공유전에 한번 돌려주는 작업을 처리하면 구현이 가능하다.



<script>

function go_sns(SNS,siteContent,siteshort,siteUrl)

{

    var siteUrl = siteUrl;

    var siteContent = encodeURI(siteContent);

    var siteshort = encodeURI(siteshort);

    var siteBody = "\""+siteContent+"\":"+siteUrl; // me2day 용 (링크 액션 줄 수 있도록)


    if(SNS == "facebook") {    

        window.open("http://www.facebook.com/sharer.php?u="+siteUrl+"&t="+siteContent+"","SNS_pop","width=800 height=600"); 

    }else if(SNS == "twitter"){        

       window.open("http://twitter.com/share?text="+siteContent+"&url="+siteUrl+"","SNS_pop","width=800 height=600");    

    }else if(SNS == "me2day"){        

       window.open("http://me2day.net/posts/new?new_post[body]="+siteBody+"&new_post[tags]="+siteshort+"","SNS_pop","width=800 height=600");    

    }else if(SNS == "cyworld"){

       window.open("http://csp.cyworld.com/bi/bi_recommend_pop.php?url="+siteUrl+"&"+siteContent+"","SNS_pop","width=800 height=600");    

    }else if(SNS == "daum"){

       window.open("http://yozm.daum.net/api/popup/prePost?link="+siteUrl+"&prefix="+siteContent+"","SNS_pop","width=800 height=600");

    }

}

</script>

<a onclick="go_sns('facebook','<?=$it[it_name]?>','1stzone','http://1stzone.com/web/shop/item.php?it_id=<?=$it[it_id]?>')" href="javascript:;"><img src="<?=$item_skin_path?>/img/facebook.gif" alt="facebook" /></a>

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 82건 2 페이지
  • 66 [ php ] Class 사용법 정리 1. 클래스 정의
  • 1.클래스정의클래스란?클래스는객체의변수와함수를정의하는템플릿이며,이에따라변수로표현되는데이터영역과이러한데이터영역에접근할수있는함수로구성됩니다.클래스내에정의된변수를멤버변수(member variable)라고하고함수를메쏘드(method)라고합니다.C++과같은객체지향언어에서는멤버변수를데이터멤버,메쏘드를멤버함수라고호칭합니다.PHP에서클래스를사용하는것은 C++또는자바와거의비슷합니다.클래스정의클래스를정의(class definition)할때는키워드"class"를사용합니다.클래스를구성하는멤버변수와메쏘...
  • 웹지기 09-11 6040 0 0 댓글 0
  • 65 [ php ] Class 사용법 정리 2. 객체생성
  • 2.객체생성객체생성=객체초기화(object initialization)=인스턴스화(instantiation)클래스는붕어빵을만드는틀(= type,=template)과같은것으로,클래스내에정의된메쏘드와멤버변수를사용하기위해서는틀을가지고붕어빵을만드는것같이객체를생성하여야합니다.객체(object)를초기화하는방법은new연산자를사용하여객체를변수에인스턴스시키는것입니다.classCart{ var $items; // Items in our shopping cart// Add $num articles of $artnr ...
  • 웹지기 09-11 7765 0 0 댓글 0
  • 64 [ php ] Class 사용법 정리 3. 클래스상속
  • 3.클래스상속클래스를상속하려면?기존에이미작성된클래스를상속(class inheritance)받으면이미작성된메쏘드와멤버변수를그대로이어받게됩니다.상속받은특성에덧붙여새로운특성을추가하는방법으로새로운클래스를정의하게됩니다.이와같이기존의클래스로부터특성을이어받는것을상속이라고합니다.이때확장된클래스를정의하기위해"extends"라는키워드를사용합니다.부모클래스&amp;자식클래스에관련된용어기존의클래스와확장된클래스를나타내는용어는객체지향언어마다다양하게사용되고있습니다.그러나어떤용어를사용하더라도같은의미...
  • 웹지기 09-11 3941 0 0 댓글 0
  • 63 [ php ] Class 사용법 정리 4. 생성자
  • 4.생성자생성자란?생성자(constructor)는클래스의새로운인스턴스가생성될때자동적으로호출되는클래스내의함수이며,클래스명과동일한이름를갖는특수한메쏘드입니다.classCart{ var $items; // Items in our shopping cart// Add $num articles of $artnr to the cartfunction add_item ($artnr, $num){ $this-&gt;items[$artnr]+= $num; }// Take $num articles of $ar...
  • 웹지기 09-11 5130 0 0 댓글 0
  • 62 [ php ] Class 사용법 정리 5.범위연산자
  • 5.범위연산자범위연산자란?PHP4에서만지원되며클래스와메쏘드또는클래스와멤버변수를연결시켜주는일로범위연산자(scope resolver)뒤에나오는메쏘드와멤버변수의스코프(사용범위)를지정하는일을하는것입니다.클래스명::메쏘드명클래스명::멤버변수명범위연산자사용목적1.인스턴스되지않은클래스의메쏘드에접근할때2.부모클래스의메쏘드와멤버변수에접근할때인스턴스되지않은클래스에있는메쏘드에접근할때class A { function example(){ echo "클래스 A에 정의된 메쏘드 example.\n"; }...
  • 웹지기 09-11 5038 0 0 댓글 0
  • 61 [ php ] Class 사용법 정리 6.부모키워드
  • 6.부모키워드부모클래스의메쏘드호출보통부모클래스에서선언된메쏘드를자식클래스에서재정의하는이유는크게두가지가있습니다.1.부모클래스메쏘드를완전히새롭게정의하기위하여2.부모클래스메쏘드의기능에새로운기능을추가하기위하여첫번째기능은부모클래스의메쏘드를무시하고메쏘드에새로운정의를함으로써부모클래스의메쏘드정의를숨기는것입니다.그러나때로는부모클래스의메쏘드를모두지우는것보다는추가적인기능이필요한경우가있습니다.이같은경우에는부모클래스의메쏘드와자식클래스에서재정의된메쏘드를모두수행하게될것입니다.즉,재정의된메쏘드구문내에서부모클래스의메쏘드를호출할수...
  • 웹지기 09-11 4747 0 0 댓글 0
  • 60 [ php ] Class 사용법 정리 7. 매직함수
  • 7매직함수__sleep, __wakeup과같이"__"로시작하는매직함수(magic function)는 PHP 클래스내에서특수한목적으로사용됩니다.따라서이함수들이가지고있는문서화된매직기능을사용할필요가없다면클래스내에이함수들을정의해서는안됩니다.__sleepserialize 함수를통해객체를직렬화할때해당클래스에매직함수 __sleep가정의되어있는지확인합니다.만약정의되어있다면객체를직렬화하기전에 __sleep 함수를수행합니다.이함수는직렬화하기전에객체멤버에대하여조작해야하는작업,또는직렬화하기전에미리수행...
  • 웹지기 09-11 4180 0 0 댓글 0
  • 59 [ php ] _SERVER, getenv 환경변수
  • PHP 환경변수 정리 서버 변수 용도$_SERVER['PHP_SELF'] 현재 실행하고 있는 스크립트의 파일명 DocumentRoot로부터 취득$_SERVER['argv'] 스크립트에 받은 인수의 배열$_SERVER['argc'] 스크립트에 받은 인수의 수$_SERVER['GATEWAY_INTERFACE'] 서버가 사용하고 있는 CGI 의 버전$_SERVER['SERVER_ADDR'] 현재의 스크립트가 실행되고 있는 서버의 IP 어드레스$_SERVER['SERVER_NAME'] 현재의 스크립트가 ...
  • 웹지기 09-11 7400 0 0 댓글 0
  • 열람중 [ php ] facebook sharer를 이용할 경우 부가 메타데이터 넣는 방법
  • 페이스북 쉐어러를 사용할때는 http://www.facebook.com/sharer/sharer.php?u=공유할 url 만 입력하면 된다. 하지만, 해당 URL에 대한 대표 이미지나, 설명같은 것은 무작위 또는 가장 강조되는 테그를 가져오기때문에 목적이 그냥 특정 URL을 공유하는 것이라면 상관없지만 이게아니라면 의도치않은 결과가 나올 수 있다. 이런 부분을 해소하기 위해서 페이스북에서는 메타데이터를 이용해 특정 정보를 가져온다. 추가할 수 있는 메타 데이터들에는 url,...
  • 웹지기 09-19 15354 0 0 댓글 0
  • 56 [ php ] ereg_replace // eregi_replace 사용법
  • ereg_replace는 str_replace와 형식은 같으나, 정규식을 사용한다는 점이 다르다. $a = "1a2b3"; $a = ereg_replace("[a-z]", "x", $a); echo $a; eregi_replace는 ereg_replace와 형식은 같으나 대소문자를 구분하지 않는다는 점이 다릅니다. $a = "1AB"; $a = ereg_replace("[a-z]", ...
  • 웹지기 09-19 4378 0 0 댓글 0
  • 55 [ php ] PREG 한글 특수문자 체크 & 추출
  • 홍길1234동abc입!!_#니다 라는 문구가 있다고 했을때 해당 문구에서 홍길동입니다 1234 abc !!_# 를 각각 추출해내는 함수이다. euckr을 기준으로 작성된 함수이며 euckr에서는 한글 패턴의 추출이 어려운 관계로 UTF-8로 전환하여 변환하는 형태이다. 핵심은 1 한글,2 영문 ,4 숫자 ,8 특수기호로 명시하고 처리하는 식이다. ========= 내용 ============== $msg = "홍길1234동abc입!!_#니다"; ...
  • 웹지기 09-19 8614 0 0 댓글 0
  • 54 [ php ] php를 활용하여 리눅스 계정 만들기
  • 1. 먼저, /usr/sbin/useradd를 웹 서비스 디렉토리에 복사[code] #cp /usr/sbin/useradd /usr/www/html/[/code] (웹 서비스 디렉토리는 리눅스에 따라 약간의 차이가 있을 수 있슴) 2. 복사한 useradd의 setid를 설정합니다 (물론 /usr/www/html의 위치에서 명령을 내림 )[code] #chmod a+s useradd [/code] 3. php소스 (소스파일은 웹 서비스 디렉토리에 있어야 함)[code] #vi ...
  • 웹지기 09-19 4830 0 0 댓글 0
  • 53 [ php ] 파일 확장자 구하기 여러가지 방법
  • [code] &lt;?php $filename = "mypage.asp"; //1 strrchr함수를 사용해서 확장자 구하기 $ext = substr(strrchr($filename, '.'), 1); echo$ext; echo"&lt;br&gt;"; //2 strrpos 함수와 substr함수를 사용해서 확장자 구하기 $ext = substr($filename, strrpos($filename, '.') + 1)...
  • 웹지기 09-19 16749 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
3,298
어제
8,307
최대
33,828
전체
8,654,764

그누보드5
Copyright © funyphp.com. All rights reserved.