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 // 변수, 인증 값으로 시간에 따라 변한다. -끝- 추가. 이상을 적용해 클래스를 만든다.