Как аутентифицировать Salesforce через драйвер CData ODB C через OAuth? - PullRequest
2 голосов
/ 25 февраля 2020

Я установил драйвер CData ODB C для Salesforce и могу подключиться к Salesforce через имя пользователя, пароль и маркер безопасности. Я также хотел получить доступ через OAuth. Я выполнил все шаги, указанные в ссылке ниже. Как мы можем go дальше.

http://cdn.cdata.com/help/RFE/odbc/pg_oauth.htm

Вот мой код для подключения Salesforce через имя пользователя, пароль и токен безопасности и возможность сохранения данных в CSV-файл. Как сделать то же самое через OAuth?

import pyodbc
import csv
cnxn = pyodbc.connect("DRIVER={CData ODBC Driver for Salesforce};User=yourusername;Password=password;Security Token=security token;")
cursor = cnxn.cursor()
query = "SELECT * from AccountPartner"
cursor.execute(query)
csvfile=open('persons.csv','w', newline='')
obj=csv.writer(csvfile)
for row in cursor:
    print(row)
    obj.writerow(row)
csvfile.close()

1 Ответ

2 голосов
/ 25 февраля 2020

Необходимые инструкции находятся ниже в документации (также скопированной ниже): http://cdn.cdata.com/help/RFE/odbc/pg_oauthcustomappcreate.htm

Вам нужно будет создать собственное приложение в Salesforce, а затем установить предписанное Свойства соединения, связанные с OAuth, в строке подключения. Ваш код для создания соединения будет выглядеть следующим образом:

cnxn = pyodbc.connect("DRIVER={CData ODBC Driver for Salesforce};OAuthClientID=MY_CONSUMER_KEY;OAuthClientSecret=MY_CONSUMER_SECRET;OAuthCallbackURL=https://localhost:33333;InitiateOAuth=GETANDREFRESH;")

Возможно, вам потребуется сначала проверить соединение и запустить поток OAuth вне Python. Инструкции для этого процесса можно найти в разделе справки Unix ODB C (http://cdn.cdata.com/help/RFE/odbc/pg_unixODBConlinux.htm), но они также скопированы ниже.


Инструкции скопированы с Документация

Создание подключенного приложения

Для получения учетных данных клиента OAuth, ключа потребителя и секрета потребителя:

  1. Войдите на Salesforce.com.
  2. В меню «Настройка» введите «Приложения» в поле «Быстрый поиск», а затем щелкните ссылку, чтобы создать приложение.
  3. В разделе «Подключенные приложения» на появившейся странице нажмите «Создать». Введите имя, которое будет отображаться пользователям при входе в систему для предоставления разрешений вашему приложению, а также контактный адрес электронной почты.
  4. Нажмите Включить настройки OAuth и введите значение в поле URL-адрес обратного вызова. Если вы создаете приложение для настольного компьютера, установите для URL обратного вызова значение http://localhost: 33333 или другой номер порта по вашему выбору. Если вы создаете веб-приложение, задайте в качестве URL-адреса обратного вызова страницу вашего веб-приложения, на которую вы хотите, чтобы пользователь вернулся после авторизации вашего приложения.
  5. Выберите объем разрешений, которые ваше приложение должно запрашивать у пользователя.
  6. Нажмите на название вашего приложения, чтобы открыть страницу с информацией о вашем приложении. Отображаются учетные данные клиента OAuth, ключ потребителя и секрет потребителя.

Аутентификация в Salesforce из настольного приложения

После установки следующих свойств подключения вы готовы к подключению:

  • OAuthClientId : установите ключ потребителя в настройках приложения.
  • OAuthClientSecret : установите секрет потребителя в настройках приложения .
  • CallbackURL : установите URL-адрес обратного вызова в настройках приложения.
  • InitiateOAuth : установите на GETANDREFRE SH. Вы можете использовать InitiateOAuth, чтобы не повторять обмен OAuth и вручную устанавливать свойство соединения OAuthAccessToken.

При подключении драйвер открывает конечную точку OAuth в браузере по умолчанию. Войдите и предоставьте разрешения приложению. Затем драйвер завершает следующий процесс OAuth:

  1. Получает URL-адрес обратного вызова и устанавливает маркер доступа и OAuthServerUrl для проверки подлинности запросов.
  2. Сохраняет значения OAuth в OAuthSettingsLocation для сохранения в соединениях.
  3. Обменивает возвращенный токен refre sh на новый действительный токен доступа.

Использование unixODB C

Определите DSN

Создайте DSN, добавив запись в odbc.ini или .odbc.ini. Ниже приведен пример записи DSN:

[CData Salesforce Source]
Driver=/opt/cdata/cdata-odbc-driver-for-salesforce/lib/libsalesforceodbc.x64.so
OAuthClientID=MY_CONSUMER_KEY
OAuthClientSecret=MY_CONSUMER_SECRET
OAuthCallbackURL=https://localhost:33333
InitiateOAuth=GETANDREFRESH

Проверка соединения

Вы можете использовать инструмент тестирования unixODB C, i sql, для выполнения SQL запросов к Salesforce из командная строка. При тестировании соединения используйте флаг -v для вывода любых сообщений из диспетчера драйверов и драйвера.

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