얼마전 제 홈페이지도 네이버 웹문서 검색결과에 노출시켜 보고자
네이버 신디케이션 API 연동작업을 했습니다.
신디케이션 가이드를 참고해서 개발을 완료, 스텐바이 standby 상태로 전환까지 시켰지만,
Working 단계로 전환은 되지 않았습니다.
이유는 네이버측에서 제홈페이지를 메타블로그 사이트로 판정하여 웹문서 검색결과에 노출시켜 줄 수 없다는 답변을 받았습니다.
ㅠ.ㅠ 많이 아쉽네요.. 한번 더 메달렸지만.. 얄짤없었습니다. 결국 포기...
혹시나 실수로 연동시켜줄까봐 가끔... 신디 상태만 확인해보고 있습니다. ㅋㅋ
같이 확인해 보실래용~
그래서 전 저처럼 신디케이션 때문에 맨땅에 해딩하는 개발자를 위해 제가 겪었던 문제와 해결했던 과정을 좀 정리해 볼려고 합니다.
참고로 저는 ASP로 신디케이션 연동작업을 했습니다.
신디케이션 연동 작업하시는 개발자님께 조금이나마 보탬이 됐으면 하는 마음입니다. 힘내세요 ^^
신디케이션 연동에 관련된 네이버의 공식사이트는 http://dev.naver.com/openapi/apis/function/syndication 를 참고하세요
신디케이션 연동작업은 두가지만 해주면 됩니다.
1. Ping 전달
2. 그리고 신디케이션 서버가 요청하는 신디케이션 문서전달
먼저 핑에 관한 이야기부터 해보겠습니다.
알고보면 별거 아닌데... 개발할땐 이게 맞는건지... 제대로 전달이 된건지...
검색해도 자료도 없고 많이 헤메게 됩니다.
지금도 검색해보면 헤메고 있는 개발자 질문글이 많이 나옵니다. ㅋㅋ
핑은...
우리쪽 서버에서 핑을 보내면 네이버 신디서버의 응답이 아래와 같이 http 200 ok 를 받아야 정상적으로 핑이 전달됐다고 보시면 됩니다.
HTTP/1.1 200 OK
Date: Fri, 25 Jan 2013 01:53:55 GMT
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 PHP/5.2.17
X-Powered-By: PHP/5.2.17
Content-Length: 0
Connection: close
Content-Type: text/html
응답이 없다거나, 200 OK 가 아닌 에러코드가 나온다면 핑이 성공됐다고 할 수 없습니다.
그런데... 문제는 네이버에 공개된 핑전달문 샘플이 문제입니다.
저것데로 보내면 절대 응답을 받을 수 없었습니다. ㅋㅋ 저것때문에 하루종일 삽질했습니다.
검색해도 마땅한 자료를 찾을 수 없었고
결국 네이버에 오픈된 PHP 연동 소스를 참고해서 답을 찾았습니다.
POST /ping/ HTTP/1.0
User-Agent: request
Host: syndication.openapi.naver.com
Content-Type:application/x-www-form-urlencoded
Content-Length: 185
link=http%3A%2F%2Fwww%2Eblogrankey%2Ecom%2Fsyndi%2Fsyndi%5Fecho%2Easp%3Fmodule%3Dsyndication%26act%3DgetSyndicationList%26id%3Dtag%3Awww%2Eblogrankey%2Ecom%2C2013%3Asite%26type%3Dchanel
이렇게 수정을 하고나서야 OK 응답을 받을 수 있었습니다.
제홈페이지에서 신디서버로 핑 보내는 샘플입니다.
http://www.blogrankey.com/syndi/syndi_ping.asp
그리고 네이버가 공개한 PHP 소스를 보면 줄바꿈을 \r\n 으로 처리가 되어있습니다.
그대로 처리를 해도 200 OK 응답을 받을 수 있지만.
신디케이션 상태는 no_exist_site 라고만 표시되어서 혹시 전달문에 문제가 있나 고민하다가
아래와 같이 변경했고 그제서야 standby 상태로 전환이 됐는데
이부분은 전달문의 차이인지... 때마침 그때가 전환될 찰라라 그런건지는 잘 모르겠습니다.
전달문 소스를 공개하니 참고만 해보세요...
sendStr = "POST /ping/ HTTP/1.0 " & Chr(13) & Chr(10)
sendStr = sendStr & "User-Agent: request " & Chr(13) & Chr(10)
sendStr = sendStr & "Host: "&URL&" " & Chr(13) & Chr(10)
sendStr = sendStr & "Content-Type:application/x-www-form-urlencoded " & Chr(13) & Chr(10)
sendStr = sendStr & "Content-Length: "&Len(server.urlencode(tt))+5&" " & Chr(13) & Chr(10)
sendStr = sendStr & "" & Chr(13) & Chr(10)
sendStr = sendStr & "link="&server.urlencode(tt)
핑에 관해서는 이만하면 된것 같습니다. ㅋㅋ
쓰고보니 별거없네요..
글이 너무 길어져 두편으로 나눠야겠습니다.
다음 포스트에서 신디케이션 문서전달에 관한 이야기를 해보겠습니다.
궁금하시면 또오세요 ㅋㅋㅋ
'개발자 공개 오픈소스' 카테고리의 다른 글
네이버의 연관검색어를 추출 / 파싱하는 프로그램 (2) | 2013.04.12 |
---|---|
신디케이션 API 연동 2 웹문서 전달 syndi_echo.asp 의 역활 (4) | 2013.02.06 |
ASP로 서버 푸쉬 (Server Side Push) 를 구현해보자 (0) | 2013.01.25 |
스마트폰 GPS 개발 모바일 웹용 자바스크립트 (javascript) 소스 (8) | 2013.01.05 |
모바일 웹에서 카카오톡으로 메시지 발송기능 :: 자바스크립트 (1) | 2013.01.03 |