공공api 사용하는법 (초보입니다) ㅠㅠ

공공api 사용하는법 (초보입니다) ㅠㅠ

QA

공공api 사용하는법 (초보입니다) ㅠㅠ

본문

안녕하세요 고수님들.. 아예 코딩에 맨땅헤딩하는 초보입니다.

홈페이지에 REST api인  한국사회보장정보원_사회서비스 제공기관 정보 검색 api를 활용해서

홈페이지에 제공기관 정보검색을 하고싶습니다..

하지만 이렇게 오류가뜨네요..

SimpleXMLElement Object ( [header] => SimpleXMLElement Object ( [resultCode] => 99 [resultMsg] => SERVICE KEY IS NOT REGISTERED ERROR. ) )

API키는 공공 api에서 제공받은거 인코딩도 넣어보고 디코딩된것도 넣어봤는데

오류가뜹니다.. 구글링을 해봤지만

1.오류가 활용신청후 1시간 대기

2.Service라고 코딩되어있는것을 service로 바꿔주기

3.인코딩, 디코딩 둘다써보고 , 인코딩된 키도 인코딩이나 디코딩해주는 홈페이지가서 바꿔보기도했습니다.

또한 이 오류를 고치면 검색하는 기능이 홈페이지 창에 생기는것인지요..?

 

2949324483_1622292697.614.png


<?php
   
$ch = curl_init();
$url ='http://api.socialservice.or.kr/api/service/provider/providerList?sido=006&signgu=3620000&providerName=해맑은&serviceType=4000 &ServiceKey='; /*URL*/
$queryParams = '?' . urlencode('serviceKey') . '0rsTsjDeVF5%2BGgqU5cGNt9wo2AM8wwThPSYHTnLOTES3%2BBHEAG%2BsYT2xgnOii8%2Fq6atODtROst94THmbIYBbvA%3D%3D'; /*Service Key*/
$queryParams .= '&' . urlencode('pageNo') . '=' . urlencode('1'); /**/
$queryParams .= '&' . urlencode('numOfRows') . '=' . urlencode('10'); /**/
$queryParams .= '&' . urlencode('sido') . '=' . urlencode('006'); /**/
$queryParams .= '&' . urlencode('signgu') . '=' . urlencode('3620000'); /**/
$queryParams .= '&' . urlencode('serviceType') . '=' . urlencode('4000'); /**/
$queryParams .= '&' . urlencode('serviceName') . '=' . urlencode('지역'); /**/
$queryParams .= '&' . urlencode('providerName') . '=' . urlencode('제공기관4653'); /**/
//$queryParams .= '&type=json'; /* 추가하시고 */
 
curl_setopt($ch, CURLOPT_URL, $url . $queryParams);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($ch);
// var_dump($response);
curl_close($ch);

 
    $xml = simplexml_load_string($response);
    print_r($xml);
 
  
// $array = json_decode($response,TRUE);
 //print_r($array );
 
 
?> 

코드는 이렇습니다.. 어느부분을 손봐줘야 api를 사용할수있나요..?

저는 제공기관검색이여서 api가 실제로 실행되게 되는줄알았는데 어떠한부분을 만져야할까요 ㅠㅠ

고수님들 도와주시면 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 2

api를 제공하는 사이트에서 어떻게 전송하고 주고 받을 수 있는지 규약을 정해줍니다.

 

key를 파라미터에 넣는경우도 있고 헤더에 넣는경우도 있고 특정한 헤더값이나 쿠키값을 요구하는경우도 있습니다.

 

api를 제공하는 사이트의 문서를 잘 읽어보세요.

 

에러자체는 키가 등록되지 않았다는것인데 제대로 신청이 되었는지, 신청이 되었으면 제대로 요청을 보내고 있는지 확인하세요

- 개발계정은 일1,000건의 트래픽을 제공합니다.
- 자동승인으로 활용신청 후, 약30분 이후에 사용이 가능합니다. (공공데이터포털 과 활용신청 페이지의동기화)

1) REST방식의 URL 요청 예시
응답표준은 XML입니다.  JSON을 요청할 경우 “&_type=json”을 추가하여 요청합니다.
-  Json 요청 : http://api.socialservice.or.kr/api/service/socialservice/serviceList?serviceType=8000_type=json

2) 서비스키(인증키) 인코딩방법
String myKey = “발급받은 인증키”;
String ServiceKey = URLEncoder.encode(myKey, "UTF-8");

3) 요청파라미터에 서비스명 기재
INPUT 파라미터가 한글일 경우 인코딩 처리가 필요
//====== 파라미터 인코딩 예시(JSP 기준)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

String searchText = URLEncoder.encode(“보건복지정보개발원”, "UTF-8");

http://api.socialservice.or.kr/api/service/socialservice/serviceList?serviceType=8000&pageNo=1&numOfRows=10&ServiceKey=ServiceKey&searchKey=searchText

문서에서 이렇게쓰여있는데.. 이러한것도 php로 쓸수있는건가요..

안녕하세요?

 

SimpleXMLElement Object ( [header] => SimpleXMLElement Object ( [resultCode] => 99 [resultMsg] => SERVICE KEY IS NOT REGISTERED ERROR. ) )

 

위와 같은 에러는 서비스키가 아직 승인 처리되지 않았기 때문에 발생하는 것으로 판단됩니다.

 

댓글의 질문 중에서 PHP로도 API를 이용할 수 있느냐는 질문에 대해서는 당연히 'Yes'입니다!

 

 

말씀하신 API와 관련하여 안내 페이지에 들어가보시면 다음과 같이 설명되어 있습니다 ^^

 

http://api.socialservice.or.kr/pubr/cmm/CMPubrHome/viewCMPubrHome.do

 

3695953688_1622338663.6723.png

 

 

사용하시려는 API가 '자동승인'인지 '승인심의'인지 제가 정확히 모르겠지만

 

'승인심의'를 거쳐야 되는 경우라면 담당자가 직접 확인한 후 승인을 해야 사용할 수 있습니다.

 

혹시 이메일로 승인 처리에 관한 안내를 받으셨는지요??

 

아쉽게도 현재 주말인 관계로 담당자가 승인 처리를 할 수 없을 것입니다 ㅠㅠ

(형식적인 심사이지만 반드시 담당자의 승인 처리를 요합니다.)

 

제 경험상 안내에 2~3일 소요된다고 명시된 것이 실제로는 영업일 기준일 수 있습니다.

 

급히 필요하시다면 월요일 오전 9시 이후에 담당자에게 유선으로 연락해보시죠~

 

'활용신청 후 1시간 대기'라고 말씀하신 부분은 '자동승인'의 경우에만 그렇습니다.

 

 

그럼 좋은 주말 되시고, 아무쪼록 서비스키와 관련된 문제가 잘 해결되시기를 기원합니다 ^^

답변을 작성하시기 전에 로그인 해주세요.
전체 7
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT