Я пытаюсь подключиться к экземпляру Salesforce и получить данные с помощью скрипта Python, но сразу же возникают проблемы. У меня есть электронное письмо со следующей информацией:
Имя пользователя
Имя профиля
Идентификатор
Идентификатор организации
Токен доступа
URL экземпляра
URL-адрес для входа
Псевдоним
Пароль
Я могу напрямую войти в URL-адрес входа, поэтому я знаю, что учетные данные работают. Я пытаюсь следовать документации simple-salesforce, поэтому мой код выглядит так:
from simple_salesforce import Salesforce
import pandas as pd
sf = Salesforce(
username='[email protected]',
password='password',
security_token='the_provided_access_token')
При этом я получаю сообщение об ошибке «SalesforceAuthenticationFailed: INVALID_LOGIN: неверное имя пользователя, пароль, токен безопасности или пользователь заблокирован».
Я понимаю, что есть разница между токеном безопасности и токеном доступа. Я не думаю, что когда-либо получал токен безопасности, есть ли способ пройти аутентификацию с токеном доступа вместо этого? Я очень новичок в REST API, и все это немного сбивает с толку.
Я не уверен насчет белого списка IP-адресов, который, как я слышал, может быть проблемой.
access_token подобен идентификатору сеанса (хранится в файле cookie, когда вы используете SF в качестве веб-сайта). В конце концов он станет недействительным. Может быть, 2 часа с момента последнего использования, максимум 12 часов, я думаю. Правильная интеграция не должна полагаться на это.
Вы можете использовать его, если очень хотите, но, скорее всего, срок его действия уже истек. Проверьте документацию simple и измените
sf = Salesforce(instance='na1.salesforce.com', session_id='')
sf = Salesforce(instance_url='https://na1.salesforce.com', session_id='')
токен безопасности — это особая вещь, которую вы можете получить по электронной почте (и как только вы запросите его в первый раз — новый токен будет отправлен при каждом сбросе пароля).
Если вы не хотите использовать токен безопасности, но знаете, что ваше приложение всегда будет использовать одни и те же IP-адреса (поскольку оно будет находиться на каком-то внутреннем сервере), вы можете перейти в «Настройка» -> «Доступ к сети» и пометить диапазоны IP-адресов как безопасные. Доступ к ним должен быть возможен без токена безопасности (а доступ к веб-сайту - без одноразовых паролей, отправленных на электронную почту)