본문 바로가기
블로그 수익 모델/쿠팡파트너스

쿠팡파트너스 deeplink(딥링크) API 활용하는 법

by 마자동 2022. 5. 19.
반응형

deeplink API를 활용하시려면 프로그래밍 언어의 이해가 필요합니다. 아래 설명은 파이썬 프로그래밍의 설명입니다. 

쿠팡파트너스 예제

쿠팡파트너스 API 가이드에 각 프로그래밍 언어별로 API 호출방법이 설명되어 있습니다. 물론 이게 무슨 소린가... 할텐데요. 방법은 간단합니다. 쿠팡파트너스 API 활용할 수 있는 인증키를 승인받고 그 인증키를 활용해서 정해진 형식으로 쿠팡파트너스 서버를 호출하면 리턴값을 넘겨받아 활용합니다. 

쿠팡파트너스 인증함수

인증키를 활용해서 리턴값을 받는 방법은 쿠팡파트너스 가이드에 자세히 나와 있습니다. 
쿠팡파트너스 API 활용 인증키를 받았고 그걸 활용해서 인증함수를 만들어 정해진 데이터를 추출하고자 할때 사용합니다. 쿠팡파트너스 API를 활용하려면 인증함수는 필수적으로 필요하고 쿠팡파트너스에서 배포하는 그대로 사용하면 됩니다. 

def generateHmac(self, method, url, secretKey, accessKey):
        path, *query = url.split("?")
        os.environ["TZ"] = "GMT+0"
        datetime = time.strftime('%y%m%d')+'T'+time.strftime('%H%M%S')+'Z'
        message = datetime + method + path + (query[0] if query else "")

        signature = hmac.new(bytes(secretKey, "utf-8"),
                            message.encode("utf-8"),
                            hashlib.sha256).hexdigest()

        return "CEA algorithm=HmacSHA256, access-key={}, signed-date={}, signature={}".format(accessKey, datetime, signature)

자주 사용하기 때문에 메소드 형태(def)로 만들어 줍니다. 위 generateHmac 메소드는 4개의 값을 필요로 합니다. 

  • self : 다른 class에서도 호출이 빈번한 메소드라면 self 선언은 필수
  • method : get 또는 post 방식 중 택 1 (상품 검색 API는 get방식이고, 딥링크 생성 API는 post방식)
  • url : 해당 api url
  • secretkey : 본인 발급받은 스크릿키
  • accesskey : 본인 발급받은 액세스키

해당 값을 받은 generateHmac 메소드는 "CEA algorithm=HmacSHA256.............................."이라는 값을 리턴합니다. 이 리턴값(인증함수)을 활용해서 쿠팡 api를 호출할 수 있습니다. 

반응형

딥링크 호출

위에서 받은 리턴값(인증함수)로 이제 딥링크를 호출해봅니다. 딥링크 호출을 위해서는 인증함수 외에 변환할 원래 상품 URL 및 호출방식(POST)도 가지고 와야겠습니다. 

def get_deeplink(self, REQUEST_METHOD, url, authorization, REQUEST):
        res = requests.request(method=REQUEST_METHOD, url=url,
                                    headers={
                                        "Authorization": authorization,
                                        "Content-Type": "application/json"
                                    },
                                    data=json.dumps(REQUEST)
                                    )
        c_deeplink = res.json()
        # 딥링크 변환 안되는 상품 구별을 위해 rCode를 가지고 옴
        r_code = c_deeplink['rCode']

        if r_code == '0':   # 정상 코드 '0'
            c_data = c_deeplink['data']
            convert_data = c_data[0]   # 쿠팡에서 받는 API는 배열, 딕셔너리 이중구조라서 먼저 배열에서 값을 추출
            convert_url = convert_data['shortenUrl']    # 딕셔너리에서 shortenUrl만 추출
        else:
            # 딥링크 변환 불가 코드: 400204
            convert_url = 'no shortenUrl....... error code : ' + r_code
        return convert_url

위의 get_deeplink 메소드로 상품 URL를 deeplink URL로 변경하여 수익을 창출할 수 있습니다. 물론.... 쿠팡파트너스 홈페이지 >> 링크생성 >> 간편 링크 만들기에서도 같은 기능을 활용할 수 있겠지만 자동 포스팅을 활용하시려면 위 기능은 빠질 수 없는 부분입니다. 

json을 활용하여 데이터를 호출하면 리턴값으로 배열과 딕셔너리에 쌓인 데이터를 받게 되는데 위 코드의 경우에는 배열에서 rCode가 정상이라면 데이터에서 shortenUrl만 추출해서 리턴합니다. 

요렇게 해주면 상품 url 이 입력될 경우 deeplink 생성 불가 상품이라면 오류 코드 및 메세지를 반환하고 정상이라면 짧은 딥링크만 리턴값으로 보내줍니다. 

deeplink api는 여러개의 상품 url을 입력받아 여러개의 deeplink url로 변환도 가능한데 제가 만든 메소드는 1개값만 입력받아 한개의 deeplink만 리턴합니다. 

해당 메소드가 정상작동 하려면 아래의 라이브러리 호출은 당연한 부분이겠지요~ 

import hmac
import hashlib
import requests
import json
from time import gmtime, strftime
반응형

댓글