본문 바로가기
Cito 일/아무나 하는 파이썬

[Python]트위터에 쿠파하기 업그레이드 1-2 : 네이버 단축 url 사용

by citopes 2020. 8. 30.
반응형

지난글에 이어서 이번에는 기나긴 쿠팡파트너스 url을 좀 짧게 만들어 보겠다.

 

[Python]트위터에 쿠파하기 업그레이드 1-1 : 상품정보를 낭비하지 말자

이전글에서 자문자답을 했다. 불러온 쿠팡 상품정보 100개를 어떻게 사용할 것인지. 트위터에 쿠파하기 업그레이드 1 : 상품정보를 낭비하지 말자 지난글에서 cp.py에 대한 아쉬운점을 몇가지 적��

www.citopes.com

물론 쿠팡 api에 있는 단축url로 변경하는 api가 있지만, 트위터 자체가 url때문에 네이버에서 검색이 안될지도 모르는 막연한 생각에 쿠팡url을 네이버 url로 바꾸려고 한다.

사용하기 앞서 https://developers.naver.com/products/shortenurl/에서 오픈 API 이용 신청을 해 두자

 

단축URL API 소개

단축URL 웹 페이지의 링크 정보는 매우 긴 경우가 많습니다. 단축 URL API는 긴 URL을 짧은 형태로 줄여주어 글자 수에 제한이 있는 SMS를 전송하거나 SNS를 이용할 때 부담을 줄일 수 있습니다. 보안 �

developers.naver.com

#### id_1.py ####

#### 네이버 api key #####################
NAVER_CLIENT_ID='SOKM3gbfs4hY6JlmDoL1'
NAVER_CLLENT_SECRET ='1g15Rhu27H'

id_1.py 파일에 위와 같이 네이버에서 발급받은 Client ID, Client Secret 값을 변수에 담는다.

 

#### twi.py ####

def getshortUrl(URL) :
	global shortUrl
	client_id = GET_ID.NAVER_CLIENT_ID # 개발자센터에서 발급받은 Client ID 값
	client_secret = GET_ID.NAVER_CLLENT_SECRET # 개발자센터에서 발급받은 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.decode('utf-8'))
		shortUrl = data['result']['url']
	else:
		shortUrl = ("Error Code:" + rescode)
	return shortUrl

twi.py에 getshortUrl 함수를 생성하고, URL이라는 변수를 입력받게 한다. URL은 기나긴 쿠팡파트너스의 상품주소일 것이다.

shorUrl변수를 전역변수로 선언을 해 줍니다.

https://developers.naver.com/docs/utils/shortenurl/#python의 파이썬 예제를 참조하여 코드를 작성합니다.

 

단축 URL API 적용 가이드

단축 URL API는 원본 URL을 `http://me2.do/example`과 같은 형태의 짧은 URL로 반환하는 RESTful API입니다.

developers.naver.com

rescode == 200 (정상)일때 shortUrl 값을 추출하여 return 해줍니다.

 

#### twi.py ####

tweet_image(url=random_choice_item['productImage'],
                message=random_choice_item['productName'] + " " + getshortUrl(random_choice_item['productUrl'])

twi.py 파일의 tweet_image 부분을 중 url불러오는 부분을 getshortUrl(random_choice_item['productUrl'])로 수정하여 적용합니다.

반응형

댓글