mohanchinnappan commited on
Commit
d8d8947
·
1 Parent(s): f770758

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ from flask import Flask, redirect, request, render_template
3
+ from urllib.parse import quote
4
+
5
+ app = Flask(__name__)
6
+
7
+ #Salesforce OAuth2 configuration
8
+ client_id = '3MVG9kBt168mda_.dKX627bLPDOUFubPD1E.J0chqdznbNF0cKPdh.lsqALpsMHu69E3peaq8WjD2ggyM4vGb';
9
+ client_secret = '2F9F0DD41AF0061E4A13F3F5AEF4681338BC61BAE55CE8EAB83EFF17A984340D';
10
+ redirect_uri = 'http://localhost:4000/oauth2/callback';
11
+ salesforce_login_url = 'https://login.salesforce.com';
12
+ api_version = 'v56.0'
13
+
14
+ @app.route('/')
15
+ def index():
16
+ # Generate the authorization URL
17
+ authorization_url = f'{salesforce_login_url}/services/oauth2/authorize?response_type=code&client_id={client_id}&redirect_uri={quote(redirect_uri)}&scope=api'
18
+ return render_template('index.html', authorization_url=authorization_url)
19
+
20
+ @app.route('/oauth2/callback')
21
+ def oauth_callback():
22
+ authorization_code = request.args.get('code')
23
+
24
+ # Exchange the authorization code for an access token
25
+ token_url = f'{salesforce_login_url}/services/oauth2/token'
26
+ token_data = {
27
+ 'grant_type': 'authorization_code',
28
+ 'code': authorization_code,
29
+ 'client_id': client_id,
30
+ 'client_secret': client_secret,
31
+ 'redirect_uri': redirect_uri
32
+ }
33
+ token_response = requests.post(token_url, data=token_data)
34
+ token_response.raise_for_status()
35
+ token_json = token_response.json()
36
+ access_token = token_json['access_token']
37
+ instance_url = token_json['instance_url']
38
+
39
+ # Example: Make a request to Salesforce REST API
40
+ api_endpoint = f'{instance_url}/services/data/{api_version}/query?q=SELECT+Id,Name+FROM+Account'
41
+ headers = {
42
+ 'Authorization': f'Bearer {access_token}'
43
+ }
44
+ api_response = requests.get(api_endpoint, headers=headers)
45
+ api_response.raise_for_status()
46
+ accounts = api_response.json()['records']
47
+
48
+ return render_template('result.html', accounts=accounts)
49
+
50
+ if __name__ == '__main__':
51
+ app.run(port=4000)
52
+