[네이버웹마스터 가이드] 신디케이션 작성된 문서 전송 방법
페이지 정보
작성자 금탑 작성일 21-07-16 11:12 조회 8,733 댓글 0본문
신디케이션 문서의 전송 방법
네이버 신디케이션을 사용하는 웹 사이트는 네이버 신디케이션 서버에 핑(ping)을 전송하여 콘텐츠가 변경(등록/수정/삭제)되었음을 알립니다. 이때 변경된 콘텐츠를 담고 있는 네이버 신디케이션 문서의 주소를 핑 URL이라 정의합니다.
핑 URL을 수신하는 네이버 신디케이션 서버의 주소는 https://apis.naver.com/crawl/nsyndi/v2 입니다.
핑 URL 전송 제한 사항
핑 URL 1일 최대 전송 횟수는 웹마스터도구 로그인 계정당 1,000회입니다. 단일 계정에 여러 개의 사이트를 등록하였다면 계정에 포함된 모든 사이트의 핑 URL 전송 횟수 합계가 1,000회를 넘지 않도록 사이트 별로 조정해야 합니다.
핑 URL은 네이버 신디케이션을 사용하는 웹 사이트에 있어야 합니다. 예를 들어, 웹마스터도구에서 소유 확인된 http://www.example.com의 콘텐츠를 네이버 신디케이션으로 전송한다면, 핑 URL은 http://www.example.com/syndi/doc.xml과 같이 동일 호스트 주소를 사용해야 합니다. 호스트 이름이 상이한 http://sub.example.com/syndi/doc.xml 과 같은 주소는 사용할 수 없음을 주의해주세요
핑 URL은 URL 인코딩을 하여 전송해야 합니다.
핑 전송 예제
- 핑 전송 명세
HTTP 헤더: Authorization 필드에 Bearer 인증키 명시
HTTP 메소드: POST 방식
호출주소: https://apis.naver.com/crawl/nsyndi/v2
파라미터: ping_url=신디케이션 문서를 담고있는 핑 URL - HTTP 요청 헤더의 Authorization 필드에 토큰 타입(Bearer)과 함께 인증키를 명시
User-Agent: request
Host: apis.naver.com
Pragma: no-cache
Content-type: application/x-www-form-urlencoded
Accept: */*
Authorization: Bearer KKAARBaYmh9…(중략)…Wdjghm1c
- PHP 예제 : 핑 URL (http://www.example.com/syndi/doc.xml) 전송
<?php
$ping_auth_header = "Authorization: Bearer KKAARBaYmh9…(중략)…Wdjghm1c"; /* Bearer 타입의 인증키 정보 */
$ping_url = "http%3A%2F%2Fwww.example.com%2Fsyndi%2Fdoc.xml"; /* 신디케이션 문서를 담고 있는 핑 URL */
$ping_client_opt = array(
CURLOPT_URL => "https://apis.naver.com/crawl/nsyndi/v2", /* 네이버 신디케이션 서버 호출주소 */
CURLOPT_POST => true, /* POST 방식 */
CURLOPT_POSTFIELDS => "ping_url=" . $ping_url, /* 파라미터로 핑 URL 전달 */
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 10,
CURLOPT_HTTPHEADER =>
array("Host: apis.naver.com", "Pragma: no-cache", "Accept: */*", $ping_auth_header) /* 헤더에 인증키 정보 추가 */
);
$ping = curl_init();
curl_setopt_array($ping, $ping_client_opt);
curl_exec($ping);
curl_close($ping);
?>
신디케이션 핑 전송 검증
웹마스터도구의 검증 > 신디케이션 핑 메뉴에서 검증 결과를 확인할 수 있습니다.
핑 수집 요청 시 1일 최대 핑 전송 횟수인 1,000건에서 1건씩 차감되며, 핑 수집 요청의 처리 결과가 “정상”이 아닌 경우에는 사용자의 핑 전송 방식을 점검해야 합니다.
신디케이션의 응답 메시지
사용자가 네이버 신디케이션으로 핑을 전송하였을 때, 네이버 신디케이션 서버의 응답 메시지입니다.
응답 코드 | 응답 메시지 | 설명 |
---|---|---|
000 | Success | 전송이 성공하였습니다. |
024 | Authentication failed | 인증 실패하였습니다. |
028 | Authentication header not exists | OAuth Header가 없습니다. |
029 | Auth Authentication failed | 요청한 Authorization값을 확인할 수 없습니다. |
030 | Https protocol is required | https 프로토콜로 요청해주세요. |
051 | Api not exists | 존재하지 않는 API 입니다. |
061 | Malformed url | 잘못된 형식의 호출 URL입니다. |
063 | Malformed encoding | 잘못된 형식의 인코딩 문자입니다. |
071 | Unsupported return format | 지원하지 않는 리턴 포맷입니다. |
120 | No contents | 전송된 내용이 없습니다. (ping_url 필요) |
121 | Invalid parameter | 유효하지 않은 parameter가 전달되었습니다. |
122 | Invalid site | 등록되지 않은 사이트 입니다. |
123 | Exceed ping limit | 1일 전송 횟수를 초과하였습니다. |
124 | Invalid alliance site | 신디케이션 제휴가 안된 사이트입니다. |
125 | Invalid user | 소유확인이 안된 사이트의 소유자입니다. |
130 | Internal server error. Try again | 서버 내부의 오류입니다. 재시도 해주세요. |
예) 핑 전송에 성공한 경우, 아래와 같은 응답 메시지를 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<result>
<message><![CDATA[OK]]></message>
<error_code><![CDATA[000]]></error_code>
<receipt_number>c323cc3e2ab83ee92d14a3296c3bb11k</receipt_number>
</result>
예) 유효하지 않은 인증키로 핑을 전송하였을 때, 아래와 같은 응답 메시지를 받습니다.
<?xml version="1.0" encoding="UTF-8"?>
<result>
<message><![CDATA[Authentication failed (인증 실패하였습니다.)]]></message>
<error_code><![CDATA[024]]></error_code>
<receipt_number />
</result>
출처 : 네이버 웹마스터 가이드
댓글목록 0
등록된 댓글이 없습니다.