Загрузка изображений из Salesforce URL с использованием Python - PullRequest
0 голосов
/ 23 мая 2019

У меня есть csv из серии контактов из Salesforce с именем, местоположением и URL-адресом, который открывает изображение, которое мне нужно загрузить

До сих пор я мог получить доступ только к своему экземпляру Salesforce, используяPython, но я изо всех сил пытаюсь найти способ использования пакета python, чтобы не только открыть URL-адрес, но также загрузить изображение в формате .jpg и переименовать его с именем и расположением клиента.

Существует ли какой-либо пакет, который позволил бы мне сделать это.Я пытался использовать simple-salesforce, но не думаю, что у него есть такая возможность.

Ниже приведен код, показывающий запрос, который возвращает все контакты, которые мне нужны для загрузки ссылки URL для(URL_Fotograf_a_Cliente__c), но у меня больше ничего нет

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))

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

В своей жизни я никогда не писал ни строчки кода Python, но надеюсь, что между этим и ответом Дэвида вы получите где-нибудь.

Загружены ли изображения в Salesforce?Скорее всего, они находятся в таблице Attachment или File ( ContentVersion ).Вы можете попробовать проверить URL.Все идентификаторы записей вложений начинаются с 00P.

Я не уверен, что использует ваш пакет, SOAP или REST API.В SOAP API вы можете получить тело напрямую в виде строки в кодировке base64.В REST API вы можете получить URL для прямой загрузки.

SELECT Id, Name, Body, BodyLength, ContentType
FROM Attachment

Query results from developer console (REST API)

Таким образом, вы будете base64-декодировать его, переименовывать и сохранять ...

Если что-то было загружено в файлы, то это похожий процесс, просто другая таблица.Это сообщение в блоге выглядит как хорошее начало: https://crmcog.com/retrieve-sfdc-attachments-using-rest/

0 голосов
/ 23 мая 2019

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 или предпочитаемую вами библиотеку, чтобы запросить данные и сохранить их на диск.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...