Li
Delete
Are you sure you want to delete this?
ProgrammingModel
-
Date
-
20211027
-
Target
-
C_031
-
Title
-
[정보] 가비아 SMS 메시징 서비스 단문 이용 REST API 로 하기 - 출처 https://sms.gabia.com/admin/api/
-
Contents
-
사용자인증->단문발송의 두 단계
1단계 : 사용자 인증
curl --location --request POST "https://sms.gabia.com/oauth/token" \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Authorization: Basic base64encode(SMS_ID:API_KEY)" \
--data "grant_type=client_credentials"
1단계의 벽은 base64encode(SMS_ID:API_KEY) 을 풀어쓰는 것이다. 이것은 세 가지를 알아야 한다. 첫 째 base64encode 에 대한 것이다. 둘 째, SMS_ID 및 API_KEY에 대한 자료가 어디에 있는가를 아는 것이다. 셋 째 curl로 얻은 정보를 split해서 access token을 분리해내는 것이다.
둘 째는 sms.gabia.com에 자신의 정보에서 확인할 수 있는 고정값이다. 첫 째의 base64encode는 프로그램적 지식을 필요로 한다. 여기에 대한 좋은 예는 Programming #30 을 참고한다. 셋 째의 경우는 json으로 전달된 코드를 분해하는 프로그램적 지식이다. 배열변수, split, replace를 사용할 수 있어야 한다.
2단계 : 단문(SMS )발송
curl --location --request POST "https://sms.gabia.com/api/send/sms" \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Authorization: Basic base64encode(SMS_ID:ACCESS_TOKEN)" \
--data "phone=01000000000&callback=15444370&message=SMS%20TEST%20MESSAGE&refkey=[[RESTAPITEST1549847130]]"
2단계의 벽은 1단계를 통과한 후 얻은 ACCESS_TOKEN을 Basic base64encode(SMS_ID:ACCESS_TOKEN) 에 적용하는 것이다. 이것은 1단계의 벽에서 넘은 첫 째 지식과 동일하다. 다음으로 data본문의 각 변수를 알아야 한다.
phone // 받는 사람 전화번호
callback // 고정값 : sms.gabia.com 발신번호 1833-3401
message // 전달할 메시지
refkey //의미 없음
callback값은 sms.gabia.com에 등록한 환경과 동일한 발신 번호여야 한다.
다시 한 번 정리하자면 다음과 같다.
1. 사용자 인증 쿼리를 위해 SMS_ID와 API_KEY를 확인한다.
2. 이를 base64encode 한다.
3. 응답문에서 ACCESS_TOKEN을 분리 추출하고 이를 저장한다.
4. 저장한 ACCESS_TOKEN을 단문 발송 basic64encode(SMS_ID:ACCESS_TOKEN)에 적용한다.
5. 쿼리를 날린다. phone=01000000000&callback=15444370&message=SMS%20TEST%20MESSAGE&refkey=[[RESTAPITEST1549847130]]
이 때 callback에는 sms.gabia.com에 등록된 발신번호를 입력는 것에 주의한다.
여기 까지다.
주 변수는 다음과 같다. 한 번 더 확인한다.
상수
sms_id // 고정값 sms.gabia.com
api_key // 고정값 sms.gabia.com
callback // 고정값 sms.gabia.com
변수 이상의 상수를 이용해 받은 변수
ACCESS_TOKEN // 변수, 인증 값으로 시간에 따라 변한다.
-끝-
추가.
이상을 적용해 클래스를 만든다.