Salesforce: Как автоматизировать извлечение отчетов в формате JSON / CSV - PullRequest
1 голос
/ 14 марта 2020

Я новичок в Salesforce, но я опытный разработчик. Мне предоставлена ​​ссылка на отчет Salesforce, который в основном имеет правильные фильтры (запрос). Я хотел бы использовать REST API, чтобы получить эту информацию как CSV или JSON, чтобы я мог выполнить дальнейшую обработку на ней.

Вот мои вопросы:

  1. Нужны ли мне специальные разрешения для выполнения вызовов API? Что это?
  2. Нужно ли создавать "приложение" с ключом клиента и секретом? Должен ли мой администратор дать мне разрешение на это тоже?
  3. Существует множество REST API от Salesforce, какой из них мне нужен, чтобы получить информацию из отчета? Аналитика?
  4. Как пройти аутентификацию в коде?

1 Ответ

0 голосов
/ 15 марта 2020

Вам придется работать с системным администратором по вопросам безопасности. Любой, кто знает, как работает компания, может ли все пользователи видеть все, есть ли единая регистрация, какова вероятность изменения отчета ...

Вам понадобится учетная запись пользователя, чтобы получить данные. Вам нужно решить, будет ли это какая-то «системная учетная запись» (вы знаете имя пользователя и пароль и храните их в своем приложении), или она будет работать для любого пользователя в этой организации. Это может не иметь большого значения, но отчеты "весело". Если через 6 месяцев будут проблемы с отображением данных, вам будет предложено убедиться, что отчет отображает только французские данные для французских пользователей и т. Д. c ... вы можете сделать это в фильтрах отчетов или иметь несколько отчетов - или вы может просто использовать текущий доступ пользователей, и тогда это системный администратор, который должен правильно установить правила обмена. (Вы когда-нибудь задумывались об упаковке того, что вы делали, и повторном использовании в другом экземпляре SF? Создание из этого мобильного приложения? Подобные вещи могут показаться глупыми сейчас, но помогут вам выбрать оптимальный путь)

пользователю (будь то системная учетная запись или пользователь) необходимы права доступа профиля *, например, "API включен" + все, что вам обычно требуется ("Запуск отчетов" и c). Если вы склонны делать это с системным пользователем - возможно, вы захотите взглянуть на Политики паролей и, возможно, установить пароль на Никогда не истекает. Теперь это немного опасно, поэтому есть другие вещи, о которых вы можете прочитать: «API only user» (невозможно войти на сайт), возможно, даже заблокировать учетную запись, чтобы он мог войти только с определенных диапазонов IP или по адресу определенные моменты, когда задание должно быть запланировано ...

Подключенные приложения и OAUth2 - это хорошая идея, если да, то создать. Технически вам не нужно, вы можете использовать SOAP API для вызова входа в систему, получения идентификатора сеанса ... Но он немного слаб, OAuth2 даст вам больше контроля над безопасностью. Если у вас есть песочницы - есть малоизвестная хитрость. Вы можете создать подключенное приложение в рабочей среде (или даже полностью не связанное с Developer Edition) и использовать идентификатор клиента и секретный ключ для входа в песочницы. Если вы создаете приложение в песочнице и обновляете sh it - ключи перестают работать. (Возвращаясь к разделу «Безопасность» - в подключенном приложении вы можете разрешить / запретить доступ любому пользователю, или системный администратор разрешит только этим 3 пользователям подключаться, «предварительная авторизация». Может быть удобно)

Вход - несколько способов REST API для входа в систему . Зависит от вашего решения. если у вас есть 1 выделенный пользователь, вы, вероятно, go с «потоком веб-сервера». Я добавил пример { ссылка }, если у вас нет готовой библиотеки SF-соединений на вашем языке программирования. Если вы разрешите пользователям входить со своими учетными данными, OAuth будет «танцевать» при переходе на целевую страницу (Google login, LinkedIn, Twitter ...) и обратно в ваше приложение в случае успеха. Это даже работает, если на клиенте включена единая регистрация. Или вы можете позволить людям вводить свое имя пользователя и входить в ваше приложение, но это не очень удачное решение.

Получите уже готовый отчет

Как только вы получите идентификатор сеанса. Официальным способом было бы использовать Reporting API, например https://developer.salesforce.com/docs/atlas.en-us.api_analytics.meta/api_analytics/sforce_analytics_rest_api_get_reportdata.htm

Быстрая и грязная и официально не поддерживаемая вещь - это mimi c, что происходит, когда пользователь нажимает на экспорт отчета в UI. Составьте запрос GET с правильным поваром ie, и вы станете золотым. См. { ссылка }. Не знаю, сработает ли это, если вы заходите с выделенной учетной записью и разрешением «Только доступ к API».

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