importbase64importhashlibimporthmacimportjsonimportsysimporturllibfromdatetimeimportdatetime,timedeltaimportpandasaspdimportrequestsCLIENT_ID=''CLIENT_SECRET=''credentials_concatenated=':'.join((CLIENT_ID,CLIENT_SECRET))credentials_encoded=base64.b64encode(credentials_concatenated.encode('utf-8'))access_url='http://localhost/oauth/token'access_headers={'Authorization':b'Basic '+credentials_encoded}access_params={'grant_type':'client_credentials'}print('Generating new access token...')access_response=requests.post(access_url,headers=access_headers,data=access_params,verify=False)ifaccess_response.status_code==200:print('Successfully retrieved new token')access_token_json=access_response.json()ACCESS_TOKEN=access_token_json['access_token']print(ACCESS_TOKEN)else:print(f'Failed to retrieve access token with error {access_response.status_code}')print(access_response.text)sys.exit('Exiting.')# GET API Requestheaders={'Authorization':'Bearer '+ACCESS_TOKEN,'Accept':'application/json','Content-Type':'application/json',}response=requests.get(f'http://localhost/data/v3/ed-fi/schools?offset=0&limit=100&totalCount=true',headers=headers,params=None,verify=False)ifresponse.status_code==200:df=pd.DataFrame.from_dict(response.json(),orient='columns')print(f'Fetched {len(df.index)} records')print(f'Total count: {response.headers["Total-Count"]} records')print(df[['id','schoolId','shortNameOfInstitution']])else:print(f'Failed with error {response.status_code}')sys.exit('Exiting.')
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.