Spaces:
Runtime error
Runtime error
File size: 1,803 Bytes
d8d8947 df476b7 d8d8947 dfa9fc0 d8d8947 |
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
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)
|