python - 如何直接从 Salesforce Lightning 以 CSV 格式下载报告?
问题描述
我正在创建一个 Python 脚本,用于从 Salesforce 以 CSV 格式下载报告。
我的脚本在 Salesforce Classic 中运行良好。但是,我需要让它为 Lightning Experience 工作。我正在使用 simple-salesforce Python 包来访问我们的组织。对于 SF Classic,我输入一个结构如下的链接:https ://my-company.my.salesforce.com/my_report_id?view=d&snip&export=1&enc=UTF-8&xf=csv
脚本基本上是这样的:
from simple-salesforce import Salesforce
import requests
import pandas as pd
import csv
from io import StringIO
sf = Salesforce(username="my_username", password="my_password",
security_token="my_token")
sf_org = "https://my_company.my.salesforce.com/"
report_id = "0000" # Some report id
sf_report_loc = "{0}{1}?view=d&snip&export=1&enc=UTF-8&xf=csv".format(sf_org, report_id)
response = requests.get(sf_report_loc, headers=sf.headers, cookies={"sid": sf.session_id})
new_report = response.content.decode("utf-8")
df = pd.read_csv(StringIO(new_report)) # Save the report to a DataFrame.
每当我切换到 Lightning 时,链接都是无效的,我会被重定向。有没有办法在 Lightning 中完成这项工作?
解决方案
isdtp
用参数试试。在经典中,它用于强制查看没有侧边栏或标题的页面,例如添加isdtp=vw
到随机页面并查看会发生什么。
https://my_company.my.salesforce.com/00O.....?isdtp=p1&export=1&enc=UTF-8&xf=csv
?
(不知道什么是“p1”,但这是我在 Chrome 的下载历史记录中看到的,作为报告源 URL 的一部分)
推荐阅读
- javascript - JS scrollIntoView 不使用焦点()
- node.js - 连接到 MongoDB Atlas 时 Node JS 服务器中的 EAI_AGAIN 错误
- windows - Blue Prism - 无法窥探 Windows 应用程序内的元素
- sql-server - '[07000] executeUpdate 方法不得返回结果集。' 在数据夹中
- c++ - 用于简单直流电机的 Arduino 代码,用于控制位置并允许固定臂在左右两侧连接的两个开关之间的周期性运动
- oracle - 为什么可插拔数据库用户成为管理员?
- php - 即使对 Apache 配置文件和 php.ini 进行了更改,HttpOnly 仍然设置为 false
- python - AWS Lambda 无法通过 AWS SES 发送电子邮件
- javascript - React + Jest:测试套件无法运行
- rust - 为什么 nomicon 布局章节 &Vec<&'static str> 不能用于预期 &Vec<&'a str> 的地方?