我有一个来自Salesforce的一系列联系人的csv,其名称,位置和URL可以打开我需要下载的图像
到目前为止,我只能使用Python访问我的Salesforce实例,但仍在努力寻找一种使用python软件包的方法,该方法不仅可以打开URL,还可以下载.jpg格式的图像,并使用客户的名称和位置。
是否有任何可用的软件包允许我执行此操作。我尝试使用simple-salesforce
,但我不认为它具有此功能。
下面是我到目前为止显示的查询的代码,该查询返回我需要下载(URL_Fotograf_a_Cliente__c
)的URL链接的所有联系人,但是我没有比这更多的
from simple_salesforce import Salesforce, SFType, SalesforceLogin
import pandas as pd
import json
from pprint import pprint as pp
session_id, instance = SalesforceLogin(username= username, password=password, security_token=security_token, sandbox=False)
print(session_id,instance)
sf = Salesforce(instance= instance, session_id=session_id)
SOQL= "SELECT Id, Name,C_digo_del_Usuario__c,Tratamiento_IPA__c,Estado__c,Municipio__c,Comunidad__c, URL_Fotograf_a_Cliente__c FROM Contact WHERE Tratamiento_IPA__c IN ('x', 'y', 'z')"
pp(sf.query(query = SOQL))
答案 0 :(得分:0)
simple_salesforce
是访问Salesforce的正确软件包,但是您的使用方式实际上并不符合典型途径。您无需触摸SalesforceLogin
或SFType
;这些大多是内部的。随便
sf = Salesforce(username=username, password=password, security_token=security_token, sandbox=False)
然后,查询您的记录
records = sf.query("SELECT Id, Name,C_digo_del_Usuario__c,Tratamiento_IPA__c,Estado__c,Municipio__c,Comunidad__c, URL_Fotograf_a_Cliente__c FROM Contact WHERE Tratamiento_IPA__c IN ('x', 'y', 'z')")
for r in records.get("records"):
url = record["URL_Fotograf_a_Cliente__c"]
# Now, download the image and save it.
# other record details are available as, e.g., `record["Name"]`
您如何精确下载映像取决于映像是否托管在Salesforce上以及是否需要身份验证才能访问。我假设它只是一个外部URL,在这种情况下,您可以使用requests
或您选择的库来请求数据并将其保存到磁盘。
答案 1 :(得分:0)
我一生中从未编写过Python代码,但希望在这和David的回答之间您会有所收获。
图像是否已上传到Salesforce?它们很可能位于Attachment或File(ContentVersion)表中。您可以尝试检查URL。所有附件记录ID均以00P
开头。
我不确定您的软件包使用的是SOAP还是REST API。在SOAP API中,您可以直接获取主体,为base64编码的字符串。在REST API中,您可以获取直接下载URL。
SELECT Id, Name, Body, BodyLength, ContentType
FROM Attachment
因此,您需要对其进行base64解码,重命名并保存...
如果将某些内容上传到文件,则过程类似,只是表不同。这篇博客文章似乎是一个不错的开始:https://crmcog.com/retrieve-sfdc-attachments-using-rest/