如何直接从 Salesforce Lightning 以 CSV 格式下载报告?

Posted

技术标签:

【中文标题】如何直接从 Salesforce Lightning 以 CSV 格式下载报告?【英文标题】:How to download a report as a CSV directly from Salesforce Lightning? 【发布时间】:2019-12-25 19:14:13 【问题描述】:

我正在创建一个 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 = "01?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 中完成这项工作?

【问题讨论】:

【参考方案1】:

尝试使用isdtp 参数。在经典中,它用于强制查看没有侧边栏或标题的页面,例如将isdtp=vw 添加到随机页面,看看会发生什么。

https://my_company.my.salesforce.com/00O.....?isdtp=p1&export=1&enc=UTF-8&xf=csv?

(不知道“p1”是什么,但这是我在 Chrome 的下载历史记录中看到的报告源 URL 的一部分)

【讨论】:

太棒了!我检查了你提供给我的链接。它现在适用于闪电。但更棒的是,它仍然适用于 Classic!非常感谢。 很高兴你让它再次工作!请记住,这是 UI hacking,而不是真正的 API,因此他们可以随时(再次)破坏它。如果您有空闲时间 - 获取此报告的“更合适”的方式是 Analytics API:developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/…

以上是关于如何直接从 Salesforce Lightning 以 CSV 格式下载报告?的主要内容,如果未能解决你的问题,请参考以下文章

Salesforce 如何把签卡数据同步到中控系统

如何使用 Javascript 或 JQuery 从 Salesforce1 应用程序导航到 iOS 13 中的其他本机应用程序?

如何将SalesForce数据导入Python Panda数据帧

如何将 oAuth 会话令牌从 salesforce react native 应用程序传递给 react-native webview?

如何使用 Apex 在 SalesForce 中以编程方式访问报告

Salesforce 实时代理状态