끄적끄적
인스타그램 API 에러... (Impressions를 더이상 제공하지 않는다..!)
imhamburger
2025. 4. 27. 22:07
에어플로우에서 정상적으로 작동하던 인스타그램 관련 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'으로 대체하여 넣고있다.