import requests from flask import Flask, redirect, request, render_template from urllib.parse import quote app = Flask(__name__) #Salesforce OAuth2 configuration client_id = 'x'; client_secret = 'y'; redirect_uri = 'http://localhost:4000/oauth2/callback'; salesforce_login_url = 'https://login.salesforce.com'; api_version = 'v56.0' @app.route('/') def index(): # Generate the authorization URL authorization_url = f'{salesforce_login_url}/services/oauth2/authorize?response_type=code&client_id={client_id}&redirect_uri={quote(redirect_uri)}&scope=api' return render_template('index.html', authorization_url=authorization_url) @app.route('/oauth2/callback') def oauth_callback(): authorization_code = request.args.get('code') # Exchange the authorization code for an access token token_url = f'{salesforce_login_url}/services/oauth2/token' token_data = { 'grant_type': 'authorization_code', 'code': authorization_code, 'client_id': client_id, 'client_secret': client_secret, 'redirect_uri': redirect_uri } token_response = requests.post(token_url, data=token_data) token_response.raise_for_status() token_json = token_response.json() access_token = token_json['access_token'] instance_url = token_json['instance_url'] # Example: Make a request to Salesforce REST API api_endpoint = f'{instance_url}/services/data/{api_version}/query?q=SELECT+Id,Name+FROM+Account' headers = { 'Authorization': f'Bearer {access_token}' } api_response = requests.get(api_endpoint, headers=headers) api_response.raise_for_status() accounts = api_response.json()['records'] return render_template('result.html', accounts=accounts) #if __name__ == '__main__': # app.run(port=4000)