diff --git a/instagram_monitor.py b/instagram_monitor.py index 867b7e3..143fa8c 100644 --- a/instagram_monitor.py +++ b/instagram_monitor.py @@ -86,10 +86,10 @@ class InstagramMonitor: logger.info(f"Cookies loaded: ds_user_id={ds_user_id}") - resp = self.session.get(f"{API_BASE}/accounts/current_user/", headers=IG_HEADERS, timeout=30) + resp = self.session.get(f"{API_BASE}/users/self/info/", headers=IG_HEADERS, timeout=30) if resp.status_code == 200: data = resp.json() - username = data.get("user", {}).get("username", "unknown") + username = data.get("user", {}).get("username") or data.get("username", "unknown") logger.info(f"Logged in as: {username}") self._logged_in = True return True @@ -105,6 +105,24 @@ class InstagramMonitor: followees = [] max_id = None + # First get own user ID + try: + resp = self.session.get(f"{API_BASE}/users/self/info/", timeout=30) + if resp.status_code == 200: + own_user_id = resp.json().get("user", {}).get("pk") or resp.json().get("pk") + if own_user_id: + logger.info(f"Own user ID: {own_user_id}") + else: + logger.error("Could not get own user ID from response") + logger.debug(f"Response keys: {list(resp.json().keys())}") + return followees + else: + logger.error(f"Failed to get own user ID: {resp.status_code}") + return followees + except Exception as e: + logger.error(f"Error getting own user ID: {e}") + return followees + while True: try: params = {"count": 50} @@ -112,13 +130,13 @@ class InstagramMonitor: params["max_id"] = max_id resp = self.session.get( - f"{API_BASE}/users/self/following/", + f"{API_BASE}/friendships/{own_user_id}/following/", params=params, timeout=30, ) if resp.status_code != 200: - logger.error(f"Followees fetch failed: {resp.status_code}") + logger.error(f"Followees fetch failed: {resp.status_code} {resp.text[:200]}") break data = resp.json() @@ -146,6 +164,7 @@ class InstagramMonitor: try: resp = self.session.get( f"{API_BASE}/feed/user/{user_pk}/story/", + params={"user_id": user_pk}, timeout=30, ) if resp.status_code != 200: