네이버 검색 API 연동 에러 관련하여
본문
안녕하세요?
기존에 공개된 소스를 사용하여 네이버 검색 API를 적용하려는데,
오류가 납니다.
클라이언트 아이디와 비밀번호는 제대로 입력을 했구요,
다른 분들이 잘 사용하시는 소스라서 특별히 안될 이유가 없다고 보는데요,
객체를 생성할 수 없다면서 죽어 버립니다.
원인이 무엇일까요?
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
객체를 생성할수 없습니다 는 사용자가 출력하는 에러메시지고
네이버측에서 발생하는 에러메시지를 확인해봐야 합니다.
echo $xmlstring;
해서 뭐가 출력되는지 확인해보세요
$xml
= simplexml_load_string(
$xmlstring
)
;
이렇게 변경해보시던가
0 으로 나온다는건 호스트에 접속할수 없을때 나오는 리턴값입니다.
이렇게 에러 확인해보시고
print curl_error($ch);
쉘에서 이렇게 실행시켜보세요
http://static.se2.naver.com/static/img/bg_b1.png) repeat;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://static.se2.naver.com/static/img/bg_b1.png',sizingMethod='scale');color:#888888;">
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
답변을 작성하시기 전에 로그인 해주세요.