제목 : 블로그 트랙백의 구현 (WINDOWS+IIS+ASP 환경) 작성자 : 송준우 (http://iendev.kr) 작성 : 2004년 5월 26일 (2009년 10월 편집 후 보관) 라이센스 : CREATIVE COMMONS LICENSE
이글은 트랙백의 기본개념보다는 windows + asp 환경에서의 기술적 구현을 위해 간단하게 작성된 소스입니다. 따라서
트랙백의 기본개념을 이해하신후 소스를 보시는것이 도움이 되실것입니다.또한 보다 확장적인 서비스를 위해서는 아래 소스외에 더 많은
부분을 추가하셔야 합니다.
'변수 확인 If strURL="" or strTitle = "" or bidx = "" Then Response.Write "<?xml version=""1.0"" encoding=""iso-8859-1""?>" Response.Write "<response>" Response.Write "<error>1</error>" Response.Write "<message>Not Enough Arguments.</message>" Response.Write "</response>" Response.End End If
'내 블로그에 글이 있는지 확인 If 해당글의수 = 0 Then Response.Write "<?xml version=""1.0"" encoding=""iso-8859-1""?>" Response.Write "<response>" Response.Write "<error>1</error>" Response.Write "<message>Not Exist Post.</message>" Response.Write "</response>" Response.End End If
set rs = Server.CreateObject("ADODB.Recordset") with rs .Open trackback_table,접근문자열,adOpenStatic,adLockPessimistic,adCmdTable .addnew .fields ("글번호 필드명") = bidx .fields ("주소 필드명") = strURL .fields ("제목 필드명") = strTitle .fields ("내용 필드명") = strExcerpt .fields ("날짜 필드명") = now .update .close end with set rs = nothing
첫번째로 트랙백은 규정적으로 4개의 변수값을 전송합니다.
글제목(title),글주소(url),글내용(exerpt),블로그명(blog_name) 입니다. 여기서 필수요소는 url 입니다.
위 소스에서는 블로그명을 포함시키지 않았습니다. 그리고 글번호는 해당 글의 존재유무를 확인하기 위해 트랙백 주소에서 GET
형태로 받아옵니다.
두번째로 인코딩되는 xml 중 <error> 부분이 가장 중요합니다. 즉, error 값으로 트랙백 핑을
보낸쪽에다 대답을 하는 것입니다.0이면 성공이고 1이면 실패입니다. 그리고 <message>부분은 말그대로
추가설명입니다. 그리고 트랙백 핑은 POST 형태로 값을 받습니다. 받아오는 변수들을 Request.Form 형태로
정의해주는것이 더 좋을듯 하네요.
세번째로 위 소스에서는 간단한 xml 이라 굳이 xmlhttp 같은 xml 관련 서버 컴포넌트를 사용하지 않았습니다.
2. 트랙백 핑 보내기
<% b_tb = "핑을 보낼 블로그 게시물의 트랙백 주소" if b_tb <> "" then '만약 트랙백 주소가 입력되었다면 ..
' 여기서 부터 트랙백 처리 ' 핑을 보낼 준비하자 x_Posturl = Server.URLEncode(나의 글의 고유주소) x_BlogName = Server.URLEncode(나의 블로그명) x_Title = Server.URLEncode(나의 글의 제목) x_Excerpt = Server.URLEncode(나의 글의 내용)
' 트랙백 핑 성공여부 If InStr(1, xml.responseText, "<error>0</error>") Then
' 성공일경우 처리
Else
' 실패일경우 처리
End If Set xml = Nothing end if %>
일반적으로 글의 저장 또는 편집시 사용하실수 있습니다. 그리고 Str_tb 변수 정의 하면서 POST 로 넘기는 변수명은
변경하시면 안됩니다. 또한 위 소스에서는 xmlhttp 컴포넌트를 이용하여 POST 형태로 핑을 전송합니다. 트랙백 핑의
성공여부는 받아온 xml 을 디코딩 하셔도 되지만 그냥 <error>부분만 체크하기 위해 instr 로
처리하였습니다. 추가적으로 <message> 부분도 체크하여 성공 또는 실패시의 메시지를 받아오실수도 있습니다. 간혹
핑 전송시 한글이 깨어진다는 질문이 있는데, 이 경우 UrlEncoding 을 시키지 않으셨을때가 가장많습니다. 그외에는 위와
같은 방법으로 무난하게 성공하실것 입니다.