우물안에서 보는 하늘도 맑다

쿠팡 파트너스 프로그램 제작 7일차 본문

쿠팡 파트너스 프로그램 제작 7일차

몽염이 2023. 8. 22. 12:19
반응형
큰 그림 그리기

* 이클립스 시작

* Spring Boot Project 기본 시작

* ChatGPT 에 시작 프로그램 물어보기

* 쿠팡 파트너스 API 연동

* 쿠팡 파트너스 프로그램을 올려둘 워드프로세서 웹 페이지나 aws 웹 페이지 알아보기

- 호스팅?

* 테스트 시작

* SNS나 블로그에 자동으로 글을 올리는 부분 시작

오늘 진척도

 

Products 쿠팡 상품의 상세 정보를 생성합니다.

- 카테고리 별 베스트 상품에 대한 상세 상품 정보를 생성합니다. /products/bestcategories/{categoryid}

- 골드박스 상품에 대한 상세 상품 정보를 생성합니다.(골드박스 상품은 매일 오전 7:30에 업데이트 됩니다) /products/goldbox

- 쿠팡 PL 상품에 대한 상세 정보를 생성합니다. /products/coupangPL

- 쿠팡 PL 브랜드 별 상품 상세 정보를 생성합니다. /products/coupangPG/{brandid}

- 검색 키워드에 대한 쿠팡 검색 결과와 상세 상품 정보를 생성합니다.(1분당 최대 50번 호출 가능합니다.) /products/search

- 입력된 ADID 값을 이용해 개인화 추천 상품을 조회합니다. /products/reco

* 쿠팡 제품에 상세 정보를 url 별로 가져오는 테스트함.

-  베스트 상품, 골드 박스 별로 가져오는 테스트 코드를 만들고, 받아온 json 을 보기 편하게 정리하는 메소드도 만들 것

 

카테고리별 베스트 상품에 대한 상세 상품정보를 생성합니다 /products/bestcategories/{categoryid}

* Parameters
* categoryId : integer(path)
1001 여성패션
1002 남성패션
1010 뷰티
1011 출산/유아동
1012 식품
1013 주방용품
1014 생활용품
1015 홈인테리어
1016 가전디지털
1017 스포츠/레저
1018 자동차용품
1019 도서/음반/DVD
1020 완구/취미
1021 문구/오피스
1024 헬스/건강식품
1025 국내여행
1026 해외여행
1029 반려동물용품
1030 유아동패션

* limit : integer(query) 최대 상품 수는 100개 이며, 기본값은 20개 입니다.
example: https://api-gateway.coupang.com/v2/providers/affiliate_open_api/apis/openapi/products/bestcategories/1001?limit=50 

* subId : string(query) 채널 아이디. (등록되지 않은 채널 아이디는 정산에서 제외됩니다.)

* imageSize : string(query) 이미지 사이즈를 조정할 수 있습니다

 

* 소스코드

@RestController
public class OpenApiTestApplication {
	
	
	
	private final static String REQUEST_METHOD_POST = "POST";
	private final static String REQUEST_METHOD_GET = "GET";
	
    private final static String DOMAIN = "https://api-gateway.coupang.com";
    private final static String URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/deeplink";
    private final static String URL_CATEGORYID = "/v2/providers/affiliate_open_api/apis/openapi/products/bestcategories/1001?limit=50";
    // Replace with your own ACCESS_KEY and SECRET_KEY
    private final static String ACCESS_KEY = "921d2abe-6698-4a66-b31e-7e291dff9c33";
    private final static String SECRET_KEY = "cc9abecc6c49e4ac29be675b74fc944472067c4c";

    private final static String REQUEST_JSON = "{\"coupangUrls\": [\"https://www.coupang.com/np/search?component=&q=good&channel=user\",\"https://www.coupang.com/np/coupangglobal\"]}";
    
    @RequestMapping(value = "/helloTest")
    public String hello() {
    	return "Hello";
    }
    
    @RequestMapping(value = "/coupangTest")
    public String coupangTest() {
    	
    	String reponseString = "";
    	try {
	    	// Generate HMAC string
	        String authorization = HmacGenerator.generate(REQUEST_METHOD_POST, URL, SECRET_KEY, ACCESS_KEY);
	
	        // Send request
	        StringEntity strEntity = new StringEntity(REQUEST_JSON, "UTF-8");
	        strEntity.setContentEncoding("UTF-8");
	        strEntity.setContentType("application/json");
	
	        HttpHost host = HttpHost.create(DOMAIN);
	        HttpRequest request = RequestBuilder.post(URL).setEntity(strEntity)
	                				.addHeader("Authorization", authorization)
	            					.build();
	
	        HttpResponse httpResponse = HttpClientBuilder.create().build().execute(host, request);
	
	        // verify
	        reponseString = EntityUtils.toString(httpResponse.getEntity());
	        
    	}catch( ClientProtocolException cpe) {
    		
    		cpe.printStackTrace();
    		
    	}catch(Exception e) {
    		
    		e.printStackTrace();
    		
    	}	
		
    	return reponseString;
			
		
    }
    
    @RequestMapping(value = "/coupangTestCategoryid")
    public String coupangTestCategoryid() {
    	
    	String reponseString = "";
    	try {
    		
	    	// Generate HMAC string
	        String authorization = HmacGenerator.generate(REQUEST_METHOD_GET, URL_CATEGORYID, SECRET_KEY, ACCESS_KEY);
	
	        // Send request
	        StringEntity strEntity = new StringEntity(REQUEST_JSON, "UTF-8");
	        strEntity.setContentEncoding("UTF-8");
	        strEntity.setContentType("application/json");
	
	        HttpHost host = HttpHost.create(DOMAIN);
	        HttpRequest request = RequestBuilder.get(URL_CATEGORYID).setEntity(strEntity)
	                				.addHeader("Authorization", authorization)
	            					.build();
	
	        HttpResponse httpResponse = HttpClientBuilder.create().build().execute(host, request);
	
	        // verify
	        reponseString = EntityUtils.toString(httpResponse.getEntity());
	        
    	}catch( ClientProtocolException cpe) {
    		
    		cpe.printStackTrace();
    		
    	}catch(Exception e) {
    		
    		e.printStackTrace();
    		
    	}	
		
    	return reponseString;
			
		
    }

 }
반응형