안녕하세요?
기존에 공개된 소스를 사용하여 네이버 검색 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개
2017-02-01 (수) 05:39:00
답변을 작성하려면 로그인이 필요합니다.
네이버에서 예시한 소스로 테스트를 해보니 status_code가 0으로 나옵니다.
그렇다면 아예 네이버에 접속해서 결과를 못 받아오고 있는 상황인가요?