integration / app.py
Sirivennela's picture
Create app.py
d0258ad verified
raw
history blame
1.95 kB
import streamlit as st
import requests
import pandas as pd
# ---------------------- CONFIG ----------------------
USERNAME = "[email protected]"
PASSWORD = "Vedavathi@04,jqe4His8AcuFJucZz5NBHfGU"
TOKEN_URL = "https://login.salesforce.com/services/oauth2/token"
API_VERSION = "v60.0"
# ---------------------- AUTH ----------------------
@st.cache_data
def get_salesforce_token():
data = {
"grant_type": "password",
"username":[email protected] ,
"password":Vedavathi@04
}
response = requests.post(TOKEN_URL, data=data)
if response.status_code != 200:
st.error("Authentication failed!")
return None, None
res = response.json()
return res["access_token"], res["instance_url"]
# ---------------------- FETCH DATA ----------------------
def fetch_pole_data(instance_url, access_token):
headers = {
"Authorization": f"Bearer {access_token}"
}
query = "SELECT Id, Name, Location__c, Status__c, Installation_Date__c FROM Pole__c LIMIT 100"
url = f"{instance_url}/services/data/{API_VERSION}/query?q={query}"
response = requests.get(url, headers=headers)
if response.status_code != 200:
st.error("Failed to fetch Pole data")
return pd.DataFrame()
records = response.json().get("records", [])
df = pd.DataFrame(records)
return df[["Id", "Name", "Location__c", "Status__c", "Installation_Date__c"]]
# ---------------------- UI ----------------------
st.title("🚦 Vedavathi Smart Poles Viewer")
token, instance_url = get_salesforce_token()
if token:
if st.button("πŸ”„ Refresh Pole Data"):
df = fetch_pole_data(instance_url, token)
if not df.empty:
st.success("Pole data loaded successfully!")
st.dataframe(df, use_container_width=True)
else:
st.warning("No data found.")
else:
st.error("Salesforce authentication failed. Check credentials.")