본문 바로가기

IT Tech & Knowledge

쿠팡파트너스 링크, 검색 누락 방지 프로그램

반응형

 

 

다음 쿼리는 쿠팡파트너스 링크가 N포털에서 누락되는 현상을 방지하기 위해 만들어진 링크 변환 생성 프로그램입니다.

네이버의 숏URL을 변환을 위한 Client ID/Secret키를 변경하여 사용하세요.

 

사용하기 전 쿠팡파트너스 웹사이트 목록에 "http://sp.moyeola.com/"을 꼭 추가해 주세요.

 

import requests
import time
import os, sys
import hmac
import json
import hashlib
import urllib
from urllib import parse

def Coupang_link(access_key, secret_key, link):
    AD_LINK = Get_CoupangAPI_Deeplink(access_key, secret_key, link)
    print("결과: 아래 URL을 복사하여 이용하세요.")
    print(get_short_url('http://sp.moyeola.com/vip.php?method=' + parse.quote(AD_LINK["data"][0]['landingUrl'])))

def get_short_url(URL):
    client_id = ""
    client_secret = ""
    encText = urllib.parse.quote(URL)
    data = "url=" + encText
    url = "https://openapi.naver.com/v1/util/shorturl"
    request = urllib.request.Request(url)
    request.add_header("X-Naver-Client-Id",client_id)
    request.add_header("X-Naver-Client-Secret",client_secret)
    response = urllib.request.urlopen(request, data=data.encode("utf-8"))
    rescode = response.getcode()

    if(rescode==200):
        response_body = response.read()
        data = json.loads(response_body)
        return data['result']['url']
    else:
        print("Error Code:" + rescode)
        return URL

def Get_CoupangAPI_Deeplink(GET_ACCESS_KEY, GET_SECRET_KEY,REQUEST_URL):
    REQUEST_METHOD = "POST"
    DOMAIN = "https://api-gateway.coupang.com"
    URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/deeplink"

    # Replace with your own ACCESS_KEY and SECRET_KEY
    ACCESS_KEY = GET_ACCESS_KEY
    SECRET_KEY = GET_SECRET_KEY

    REQUEST = {"coupangUrls": [REQUEST_URL]}

    def generateHmac(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)

    authorization = generateHmac(REQUEST_METHOD, URL, SECRET_KEY, ACCESS_KEY)
    url = "{}{}".format(DOMAIN, URL)
    resposne = requests.request(method=REQUEST_METHOD, url=url,headers={
                                    "Authorization": authorization,
                                    "Content-Type": "application/json"
                                },
                                data=json.dumps(REQUEST)
                                )
    return resposne.json()


if __name__ == '__main__':
    Coupang_link(sys.argv[1], sys.argv[2], sys.argv[3])

#실행예시
#python Coupang_Short_URL.py f367c021-7514-463c-b8c2-44f1d9031a4b 813ea4854bca9a18365fae579c170cb980e9dda4 https://www.coupang.com/vp/products/650952
17
#cd C:\FFeedom_Project\Affiliate_Inserting
# pyinstaller --onefile Coupang_Short_URL.py
#Coupang_Short_URL f367c021-7514-463c-b8c2-44f1d9031a4b 813ea4854bca9a18365fae579c170cb980e9dda4 https://www.coupang.com/vp/products/65095217

 

바로 실행을 원한다면 하기 실행화일을 다운로드 하세요.

 

[실행화일]

Coupang_Short_URL.exe
8.85MB

 

 

[실행방법]

1.상기 화일을 다운로드 합니다.

2.여기서는 "C:\Users\Downloads"에 다운로드 했다고 가정하고, 윈도우키를 클릭 후 CMD 입력하고 실행합니다.

3. "cd C:\Users\Downloads"으로 다운로드한 폴더로 이동합니다.

 

4. Coupang_Short_URL [ACCESS KEY] [SECRET KEY] [변경 URL] 형식으로 입력하고 엔터를 누릅니다.

예시)Coupang_Short_URL XXXXX-7514-463c-CCCC-44fCCC031a4b CCCeaDDDDbca9a18365fae579c170cbDDDe9dda4 https://www.coupang.com/vp/products/65095217

 

5. 결과적으로 아래와 같은 결과를 얻게 됩니다. 해당 URL을 이용하면 검색누락을 피할 수 있습니다.

http://me2.do/G6YEWPs7

 

 

Pycharm에서 실행하기

import requests
import time
import os, sys
import hmac
# import hashlib
import json
import hashlib
import urllib
from urllib import parse

def Coupang_link(access_key, secret_key, link):
    AD_LINK = Get_CoupangAPI_Deeplink(access_key, secret_key, link)
    print(AD_LINK)
    print("결과: 아래 URL을 복사하여 이용하세요.")
    print(get_short_url(AD_LINK["data"][0]['landingUrl']))

def get_short_url(URL):
    client_id = "NAVER Client ID"
    client_secret = "NAVER Client Secret"
    encText = urllib.parse.quote(URL)
    data = "url=" + encText
    url = "https://openapi.naver.com/v1/util/shorturl"
    request = urllib.request.Request(url)
    request.add_header("X-Naver-Client-Id",client_id)
    request.add_header("X-Naver-Client-Secret",client_secret)
    response = urllib.request.urlopen(request, data=data.encode("utf-8"))
    rescode = response.getcode()

    if(rescode==200):
        response_body = response.read()
        data = json.loads(response_body)
        return data['result']['url']
    else:
        print("Error Code:" + rescode)
        return URL

def Get_CoupangAPI_Deeplink(GET_ACCESS_KEY, GET_SECRET_KEY,REQUEST_URL):
    REQUEST_METHOD = "POST"
    DOMAIN = "https://api-gateway.coupang.com"
    URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/deeplink"

    # Replace with your own ACCESS_KEY and SECRET_KEY
    ACCESS_KEY = GET_ACCESS_KEY
    SECRET_KEY = GET_SECRET_KEY

    REQUEST = {"coupangUrls": [REQUEST_URL]}

    def generateHmac(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)

    authorization = generateHmac(REQUEST_METHOD, URL, SECRET_KEY, ACCESS_KEY)
    url = "{}{}".format(DOMAIN, URL)
    resposne = requests.request(method=REQUEST_METHOD, url=url,headers={
                                    "Authorization": authorization,
                                    "Content-Type": "application/json"
                                },
                                data=json.dumps(REQUEST)
                                )
    return resposne.json()

Coupang_link('쿠팡ACCESS_KEY',
             '쿠팡SECRET_KEY',
             'URL')
반응형