from urllib.request import urlopen
import requests
import json
import base64
# Encode string data
def stringToBase64(s):
base64Result = base64.b64encode(s.encode('ascii'))
return base64Result.decode('ascii')
def requestsUrl(url, headers, payload):
response = requests.request('POST', url, headers = headers, data = payload, allow_redirects=False, timeout=5)
return response
tokenUrl = 'https://sms.gabia.com/oauth/token'
tokenPayload = 'grant_type=client_credentials'
tokenHeaders = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'Basic 자신의 base64encode값'
}
smsUrl = 'https://sms.gabia.com/api/send/sms'
smsHeaders = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': ''}
smsPayload = 'phone=01000000000&callback=1577----&message=msg&refkey=[[유니크한 자신의 문자열]]'
while True:
#get access token
tokenResult = requestsUrl(tokenUrl, tokenHeaders, tokenPayload)
token = tokenResult.json()
tokenSum = '자신의 id:' + token['access_token']
base64Result = stringToBase64(tokenSum)
#send message part
smsHeaders['Authorization'] = 'Basic ' + base64Result
smsResult = requestsUrl(smsUrl, smsHeaders, smsPayload)
#한글출력을 하고 싶으시면 아래코드 이때 띄어쓰기는 % 대신 공백
#smsResult = requestsUrl(smsUrl, smsHeaders, smsPayload.encode('utf-8'))
print(smsResult.text)
time.sleep(1800)
저번 포스트에서 적은 글의 문제점이 acess token이 1시간가량 마다 다시 얻어와야 한다는 문제입니다.
2022.12.07 - [python/도구] - 가비아 sms 서비스 구축
이 문제를 보완하기 위해 소스를 수정하였습니다.
'python > 도구' 카테고리의 다른 글
python으로 csv, excel 다루기 (0) | 2023.06.20 |
---|---|
가비아 sms 서비스 구축 (0) | 2022.12.07 |
공공데이터포털 데이터를 mysql에 넣기 (0) | 2022.08.09 |
python 에서 원격으로 폴더 생성(paramiko) (0) | 2022.07.22 |
python 파일 삭제 (0) | 2022.07.22 |