File size: 1,395 Bytes
c4c906b
83f7b95
c4c906b
83f7b95
 
 
 
 
c4c906b
 
83f7b95
 
 
 
 
 
 
c4c906b
 
 
83f7b95
c4c906b
 
 
 
 
 
 
 
 
 
83f7b95
 
 
 
 
 
c4c906b
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import requests
import os
from datetime import datetime
from supabase import create_client

SUPABASE_URL = os.getenv("SUPABASE_URL")
SUPABASE_API_KEY = os.getenv("SUPABASE_API_KEY")
supabase = create_client(SUPABASE_URL, SUPABASE_API_KEY)

def refresh_snapchat_token():
    # Get latest token from Supabase
    result = supabase.table("snapchat_tokens").select("*").order("refreshed_at", desc=True).limit(1).execute()
    if not result.data:
        print("❌ No tokens found in Supabase")
        return

    latest = result.data[0]

    data = {
        "grant_type": "refresh_token",
        "refresh_token": latest["refresh_token"],
        "client_id": os.getenv("CLIENT_ID"),
        "client_secret": os.getenv("CLIENT_SECRET")
    }

    headers = {"Content-Type": "application/x-www-form-urlencoded"}
    url = "https://accounts.snapchat.com/login/oauth2/access_token"
    response = requests.post(url, headers=headers, data=data)
    res_data = response.json()

    if "access_token" in res_data:
        supabase.table("snapchat_tokens").insert({
            "access_token": res_data["access_token"],
            "refresh_token": res_data["refresh_token"],
            "refreshed_at": datetime.utcnow().isoformat()
        }).execute()
        print(f"✅ Token refreshed and saved at {datetime.utcnow().isoformat()}")
    else:
        print("❌ Failed to refresh token:", res_data)