TIL Python Basics Day 35 - Keys, Authentication & Environment Variables: Send SMS using Twilio

이다연·2021년 1월 20일
0

Udemy Python Course

목록 보기
34/64

API Keys, Authentication

  • APIs are resource-intensive infomation. Providers often charge for the infomation.
  • API Keys: Personal account numbers that prevent from abusing the data. Used for authorising and denying.

Task1. Weather info

List slicing to fetch only 0-11 hours data from hourly tab.
Read documentation for appropriate parameters.

import requests
api_key = "bdb50b72050f8f7f1a932c9e1176fd60"
lat = 37.566536
lon = 126.977966
exclude = "current,minutely,daily,alerts"

parameters = {
    "lat": lat,
    "lon": lon,
    "exclude": exclude,
    "appid": api_key
}

response = requests.get(url="https://api.openweathermap.org/data/2.5/onecall?", params=parameters)
response.raise_for_status()
data = response.json()
hourly = data["hourly"][0:12] #slicing

will_rain = False

for item in hourly:
    condition_code = int(item["weather"][0]["id"])
    if condition_code < 700:
        will_rain = True
if will_rain:
    print("Bring an umbrella.")
else:
    print("You don't need an umbrella.")





Project: Sending SMS via the Twilio API

import requests
from twilio.rest import Client


account_sid = 'AC'
auth_token = '1af'

api_key = "bdb50b72050f8f7f1a932c9e1176fd60"
lat = 52.205338
lon = 0.121817
exclude = "current,minutely,daily,alerts"

parameters = {
    "lat": lat,
    "lon": lon,
    "exclude": exclude,
    "appid": api_key
}

response = requests.get(url="https://api.openweathermap.org/data/2.5/onecall?", params=parameters)
response.raise_for_status()
data = response.json()
hourly = data["hourly"][0:12] #slicing

will_rain = False

for item in hourly:
    condition_code = int(item["weather"][0]["id"])
    if condition_code < 700:
        will_rain = True
if will_rain:
    client = Client(account_sid, auth_token)
    message = client.messages \
        .create(
        body="It's going to rain today. Remember to bring an umbrella!",
        from_='+12082097605',
        to='+8210-'
    )

    print(message.status)

Environment Variables

why?
1. Convenience: don't wanna mess around code base when having complex project.
2. Security: might be uploading code base somewhere. Authentication keys stored in the same code isn't secure.

Be aware of api keys being stollen when uploading your own code to github and bitbucket.

Always strip API keys and use environment variables.
we can set environment variables. -> step by step instructions at lecture 315

fun APIs

Words
tap into
"get some benefit"
If only we could tap into all that energy and creativity.

profile
Dayeon Lee | Django & Python Web Developer

0개의 댓글