반응형
2020/08/18 - [Cito 일/아무나 하는 파이썬] - 쿠팡파트너스 트위터에 공짜로 트윗하기 아무나 할 수 있다.
지난번에 이어서 이번에는 본분에 해당하는 함수 부분을 보겠습니다.
전체 코드를 보면
쿠팡파트너스의 상품을 불러오는 main() 와 그 안에 인증을 위한 generateHmac() 함수, 트위터에 사용할 이미지를 저장하는 tweet_image()함수가있어요.
그리고, main() 함수를 실행해주는 부분이 있습니다..
def main():
REQUEST_METHOD = "GET"
DOMAIN = "https://api-gateway.coupang.com"
URL = '/v2/providers/affiliate_open_api/apis/openapi/products/bestcategories/'+ str(COUPANG_TARGET_CATEGORY_ID) + \
'?limit=' + str(COUPANG_PER_ITEM_LIMIT)
# Replace with your own ACCESS_KEY and SECRET_KEY
ACCESS_KEY = COUPANG_API_ACCESS_KEY
SECRET_KEY = COUPANG_API_SECRET_KEY
def generateHmac(method, url, secretKey, accessKey):
path, *query = url.split("?")
os.environ["TZ"] = "GMT+0"
dateGMT = strftime('%y%m%d', gmtime())
timeGMT = strftime('%H%M%S', gmtime())
datetime = dateGMT + 'T' + timeGMT + '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"
},
)
result = resposne.json()['data']
random_choice_int = random.randint(1, len(result))
random_choice_item = result[random_choice_int]
auth = tweepy.OAuthHandler(TWITTER_API_CONSUMER_ACCESS_KEY, TWITTER_API_CONSUMER_SECRET_KEY)
auth.set_access_token(TWITTER_API_ACCESS_TOKEN, TWITTER_API_ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
def tweet_image(url, message):
filename = 'temp.jpg'
request = requests.get(url, stream=True)
if request.status_code == 200:
with open(filename, 'wb') as image:
for chunk in request:
image.write(chunk)
api.update_with_media(filename, status=message)
os.remove(filename)
else:
print("Unable to download image")
tweet_image(url=random_choice_item['productImage'],
message=random_choice_item['productName'] + " " + random_choice_item['productUrl'])
print(datetime.now())
print(random_choice_item['productId'])
print(random_choice_item['productName'])
print(random_choice_item['productImage'])
print(random_choice_item['productUrl'])
print("\n")
한줄씩 보면.... 많네요...
def main():
main이라는 이름의 함수를 정의한거에요.
REQUEST_METHOD = "GET"
DOMAIN = "https://api-gateway.coupang.com"
URL = '/v2/providers/affiliate_open_api/apis/openapi/products/bestcategories/'+ str(COUPANG_TARGET_CATEGORY_ID) + \
'?limit=' + str(COUPANG_PER_ITEM_LIMIT)
# Replace with your own ACCESS_KEY and SECRET_KEY
ACCESS_KEY = COUPANG_API_ACCESS_KEY
SECRET_KEY = COUPANG_API_SECRET_KEY
이 부분은 카테고리 목록상품 가져오는 쿠팡 API를 사용하기 위한 부분이네요
REQUEST_METHOD = "GET" 결과를 GET방식으로 받아오겠다.
DOMAIN 쿠팡파트너스 API를 요청할 URL
URL 쿠팡파트너스 API를 요청할 URL로 위에 DOMAIN과 붙여서 사용
URL의 뒤쪽에 보면 COUPANG_TARGET_CATEGORY_ID, COUPANG_PER_ITEM_LIMIT 두개의 값이 입력되는것을 볼 수 있는데, 지난 번에 정의 내린 그 부분의 값들이 되겠다. 카테고리코드 1014와 상품갯수 100개가 그것이다.
ACCESS_KEY, SECRET_KEY 는 지난번에 정의 한 쿠팡파트너스 API키를 받아서 값으로 한다.
지난번에 뜬금없이 정의한 값들이 여기에 이렇게 사용되는것이었다.
참 쉽죠?
반응형
'Cito 일 > 아무나 하는 파이썬' 카테고리의 다른 글
쿠팡파트너스 - 트위터 너무 쉽게 자동 트윗하기 문제점?! (0) | 2020.08.24 |
---|---|
쿠팡파트너스 - 트위터 너무 쉽게 자동 트윗하기 (트위터 글쓰기 API 호출) (0) | 2020.08.23 |
쿠팡파트너스 - 트위터 너무 쉽게 자동 트윗하기 (쿠팡파트너스 API 호출) (1) | 2020.08.22 |
쿠팡파트너스 - 트위터 너무 쉽게 자동 트윗하기 (쿠팡파트너스 인증) (0) | 2020.08.22 |
쿠팡파트너스 트위터에 공짜로 트윗하기 아무나 할 수 있다. (1) | 2020.08.18 |
파이썬을 코딩하기 전에 알아야 할 것들 (0) | 2020.08.16 |
초보자가 알아야 하는 파이참의 단축키 모음 (0) | 2020.08.15 |
파이썬을 위한 IDE 파이참(PyCharm) 설치 (0) | 2020.08.13 |
최신 버전으로 파이썬 설치 하기 (2) | 2020.08.12 |
댓글