SalesforceのReportをCSVでPythonから取得する。
下記のモジュールを使用
github.com
Salesforce lightning
isdtp=p1 と言う記載をclassicより足しておかないと動かない。
URLが少し取得が難しかった(理由:複数のURL表記が有ったため)
import requests import codecs from simple_salesforce import Salesforce site_name = 'Siteの名前を記載してください。' report_id= 'レポートのIDを記載してください' password = 'パスワードに置き換えてください。' username = 'ユーザ名を置き換えてください。' security_token = 'セキュリティ トークンを置き換えてください。' filename = r'ファイル名を入れてください。' sf = Salesforce(username=username, password=password, security_token = security_token) with requests.session() as s: d = s.get("https://%s.salesforce.com/%s?isdtp=p1&export=1&enc=UTF-8&xf=csv"%(site_name,report_id), headers=sf.headers, cookies={'sid': sf.session_id}) text = d.text sf.session.close() fp = codecs.open(filename,'w+','utf8') fp.write(text) fp.close()
Salesforce classic
isdtp=p1 と言う記載をlightningより削除。
import requests import codecs from simple_salesforce import Salesforce site_name = 'Siteの名前を記載してください。' report_id= 'レポートのIDを記載してください'。 password = 'パスワードに置き換えてください。' username = 'ユーザ名を置き換えてください。' security_token = 'セキュリティ トークンを置き換えてください。' filename = r'ファイル名を入れてください。' sf = Salesforce(username=username, password=password, security_token = security_token) with requests.session() as s: d = s.get("https://%s.salesforce.com/%s?export=1&enc=UTF-8&xf=csv"%(site_name,report_id), headers=sf.headers, cookies={'sid': sf.session_id}) text = d.text sf.session.close() fp = codecs.open(filename,'w+','utf8') fp.write(text) fp.close()