imhamburger 님의 블로그
인스타그램 API 에러... (Impressions를 더이상 제공하지 않는다..!) 본문
에어플로우에서 정상적으로 작동하던 인스타그램 관련 DAG에서 갑작스럽게 에러가 발생했다.
이 DAG는 Meta에서 제공하는 인사이트 데이터를 주기적으로 수집하는 작업이었는데, 최근 Meta 측에서 Impressions 지표 제공을 중단하면서 기존에 사용하던 인스타그램 API가 오류를 발생시켰다.
따라서 Impressions 가져오는 코드를 제거하여 해결했다.
수정 전
def get_insight_info():
metric = "impressions, reach"
period = 'day'
insta_user_insights_url = f'https://graph.facebook.com/v18.0/{IG_USER_ID}/insights?metric={metric}&period={period}'
max_attempts = 3
attempts = 0
while attempts < max_attempts:
response = requests.get(insta_user_insights_url, params=params).json()
print(response)
data = response['data']
result_dict = {
'profile_views': 0, # 임시
'impressions': data[0]['values'][0]['value'],
'reach': data[1]['values'][0]['value'],
'website_clicks': 0 # 임시
}
if all(value is not None for value in result_dict.values()):
break
return result_dict
수정 후
def get_insight_info():
metric = "reach"
period = 'day'
insta_user_insights_url = f'https://graph.facebook.com/v18.0/{IG_USER_ID}/insights?metric={metric}&period={period}'
max_attempts = 3
attempts = 0
while attempts < max_attempts:
response = requests.get(insta_user_insights_url, params=params).json()
print(response)
data = response['data']
result_dict = {
'profile_views': 0, # 임시
'impressions': 0, #2025년 4월 25일 이후로 중단
'reach': data[0]['values'][0]['value'],
'website_clicks': 0 # 임시
}
if all(value is not None for value in result_dict.values()):
break
return result_dict
2025년 4월 25일 이후 impressions 부분을 '0'으로 대체하여 넣고있다.
'끄적끄적' 카테고리의 다른 글
DBT unique_key 값 설정하기 (0) | 2025.05.23 |
---|---|
ERROR: Lambda is initializing your function (0) | 2025.05.11 |
3월 회고 - 데이터 엔지니어로서의 시작 (1) | 2025.03.30 |
데이터엔지니어 부트캠프 - json-server로 간단하게 CRUD 실습해보기 (0) | 2024.10.28 |
자바(Java) - 자바기초, 전위형증감, 후위형증감, switch 사용방법 (1) | 2024.10.15 |