50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
import os
|
|
import requests
|
|
from google.oauth2.credentials import Credentials
|
|
from google.auth.transport.requests import Request
|
|
from database import get_db_connection
|
|
|
|
def test_fetch_reviews():
|
|
creds = Credentials.from_authorized_user_file('token.json')
|
|
if creds.expired and creds.refresh_token:
|
|
creds.refresh(Request())
|
|
|
|
headers = {
|
|
'Authorization': f'Bearer {creds.token}'
|
|
}
|
|
|
|
account_url = "https://mybusinessaccountmanagement.googleapis.com/v1/accounts"
|
|
res = requests.get(account_url, headers=headers)
|
|
if res.status_code != 200:
|
|
print("Error getting accounts:", res.text)
|
|
return
|
|
|
|
accounts = res.json().get('accounts', [])
|
|
if not accounts:
|
|
print("No accounts found.")
|
|
return
|
|
|
|
account_name = accounts[0]['name']
|
|
print(f"Using account: {account_name}")
|
|
|
|
conn = get_db_connection()
|
|
with conn.cursor() as cur:
|
|
cur.execute("SELECT outlet_name, popcorn_code, google_business_id FROM master_outlet WHERE google_business_id IS NOT NULL;")
|
|
rows = cur.fetchall()
|
|
for row in rows:
|
|
name, code, loc_id = row
|
|
location_name = f"locations/{loc_id.strip()}"
|
|
url = f"https://mybusiness.googleapis.com/v4/{account_name}/{location_name}/reviews"
|
|
response = requests.get(url, headers=headers)
|
|
print(f"Outlet: {name} (Code: {code}, ID: {loc_id.strip()}) -> Status: {response.status_code}")
|
|
if response.status_code == 200:
|
|
data = response.json()
|
|
reviews = data.get('reviews', [])
|
|
print(f" Found {len(reviews)} reviews.")
|
|
else:
|
|
print(f" Error: {response.text[:200]}")
|
|
conn.close()
|
|
|
|
if __name__ == '__main__':
|
|
test_fetch_reviews()
|