API Keys, Authentication, Environment Variables and Sending SMS
API Authentication
- 인증을 요구하는 API를 사용하는 방법
- 자신들의 서비스를 남용하는 것을 방지하기 위해 API키를 사용
- API키를 이용하여 API를 얼마나 사용하는지 추적하고
액세스를 승인하거나 한도를 초과하면 액세스를 거부할 수 있음
API키로 인증하고 OpenWeatherMap에서 날씨 가져오기
- 키 받기
- 코드에 적용
앞으로 12시간 안에 비가 올지 확인하기
Twilio API로 SMS보내기
-모든 나라에서 문자 메시지를 전송하거나 전화통화를 하거나 가상 전화번호를 사용하게 해주는 API서비스
- 주문시스템 구축, 비디오 앱, SMS를 이메일로 보내는 등
PythonAnywhere로 파이썬 스크립트 자동화하기
- 무료 계정이 사용하는 프록시 서버에 접속하는 방법을 twilio API에 알려줘야 함
- pythonanywhere무료계정에는 프록시 서버만 있음
해결방법
- TwilioHttpClient클래스를 twilio모듈로부터 import
- if문 안에 proxy_client생성하고 매개변수 넣어주기
- import os 모듈
환경변수와 API 키 감추기
Envionment Variables
- 편의성 : 대형 어플리케이션을 배포할 때 프로세스가 복잡함
일단 완성했다면 코드 베이스를 다시 손보거나 업데이트하려면 힘듦
대신 환경변수를 변경
ex)
클라이언트에게 보내는 베이스 이메일이 매일 변경되는 어플의 경우,
코드 베이스에 사용되는 특정한 변수들을 환경변수로 설정해서
코드를 만지지 않고도 수정할 수 있음
- 보안성 : 코드를 어딘가 업로드할 때 인증키나 API키 같은 것들을 포함하는 것은 좋지 않음
환경변수를 사용하면 키, 비밀 정보, 다양한 다른 변수를 코드 베이스가 있는 곳과 자른 곳에 저장할 수 있게 됨 - 등호에 띄어쓰기 없어야 함
환경변수 생성하려면 Terminal에 변수 생성하고 키 저장
export NAME_OF_ENV_VAR="236e****af4a6a89****f7be73"
임포트한 os모듈을 사용해 환경변수에서 키 불러오기
api_key = os.environ.get("NAME_OF_ENV_VAR")
추가한 환경변수 pythonanywhere에 적용시키기
- python3 main.py앞에 넣어주고 세미콜론으로 마무리