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

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
공공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시간 대기'라고 말씀하신 부분은 '자동승인'의 경우에만 그렇습니다.

 

 

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

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

회원로그인

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