미채택 완료

네이버 검색 API 연동 에러 관련하여

2017-02-01 (수) 05:27:14 5,772

안녕하세요?

기존에 공개된 소스를 사용하여 네이버 검색 API를 적용하려는데,

오류가 납니다.

클라이언트 아이디와 비밀번호는 제대로 입력을 했구요,

다른 분들이 잘 사용하시는 소스라서 특별히 안될 이유가 없다고 보는데요,

객체를 생성할 수 없다면서 죽어 버립니다.

원인이 무엇일까요?

Copy
class NaverProxy {    public function queryNaver($query, $target) {	$client_id = "xxxxx";	$client_secret = "yyy"; 	$query = urlencode("버스");	$target = "news";	$url = "https://openapi.naver.com/v1/search/".$target.".xml";	$url = sprintf("%s?query=%s&display=4&start=1",  $url, $query);	$is_post = false; 	$ch = curl_init();	curl_setopt($ch, CURLOPT_URL, $url);	//curl_setopt($ch, CURLOPT_GET, $is_post);	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 	$headers = array();	$headers[] = "X-Naver-Client-Id: ".$client_id;	$headers[] = "X-Naver-Client-Secret: ".$client_secret; 	curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 	$data = curl_exec ($ch);	curl_close ($ch); 	return $data;    }} $naverproxy = new NaverProxy(); $xmlstring = $naverproxy -> queryNaver($_POST['query'], $_POST['target']); $xml = simplexml_load_string($xmlstring) or die("에러: 객체를 생성할 수 없습니다");
|

답변 2개 / 댓글 1개

0 으로 나온다는건 호스트에 접속할수 없을때 나오는 리턴값입니다.

이렇게 에러 확인해보시고

print curl_error($ch);

쉘에서 이렇게 실행시켜보세요

curl  "https://openapi.naver.com/v1/search/blog.xml?query=%EB%A6%AC%EB%B7%B0&display=10&start=1&sort=sim" \
    -H "X-Naver-Client-Id: {애플리케이션 등록 시 발급받은 client id 값}" \
    -H "X-Naver-Client-Secret: {애플리케이션 등록 시 발급받은 client secret 값}" -v


객체를 생성할수 없습니다 는 사용자가 출력하는 에러메시지고

네이버측에서 발생하는 에러메시지를 확인해봐야 합니다.

echo $xmlstring; 

 

해서 뭐가 출력되는지 확인해보세요 

 

 $xml = simplexml_load_string($xmlstring);

이렇게 변경해보시던가

답변에 대한 댓글 1개

해보니 아무것도 출력이 안되구요,
네이버에서 예시한 소스로 테스트를 해보니 status_code가 0으로 나옵니다.
그렇다면 아예 네이버에 접속해서 결과를 못 받아오고 있는 상황인가요?

답변을 작성하려면 로그인이 필요합니다.