Как получить доступ к данным Salesforce через драйвер CData ODBC с использованием Python с использованием токена доступа Salesforce пользователя из авторизации OAuth?
У меня есть веб-приложение, и я хочу интегрировать с ним Salesforce. Поэтому, когда авторизация OAuth2 происходит со стороны пользователя (он входит в систему и дает доступ нашему приложению для доступа к его данным). После того, как пользователь предоставит доступ, я получу указанные ниже параметры.
access_token
refresh_token
instance_url
issued_at
signature
scope
token_type
Используя указанный выше параметр, я должен получить данные через Salesforce API через CData, используя python3. Итак, как мне это сделать через CData - вот мой вопрос. Надеюсь, я до сих пор понимаю. Я просмотрел документ, который вы отправили. Я не могу понять. Не могли бы вы уточнить?
Я нашел только один документ, подключающийся через питон, упомянутый ниже. В нем не говорится об использовании токена доступа. http://cdn.cdata.com/help/RFE/odbc/pg_odbclangpythonconnect.htm
Я просмотрел документы CData, связанные с Salesforce, я не понимал, как это сделать. Я не должен использовать имя пользователя, пароль, идентификатор клиента, секрет клиента. Может ли кто-нибудь мне в этом помочь.
1 ответ
Инструкции по подключению к Salesforce с использованием OAuth с драйвером CData ODBC находятся здесь: http://cdn.cdata.com/help/RFE/odbc/pg_oauthcustomappcreate.htm (скопировано ниже).
Аутентификация в Salesforce из веб-приложения
Чтобы получить токен доступа, установите следующие свойства подключения:
- OAuthClientId: задайте ключ клиента в настройках приложения.
- OAuthClientSecret: укажите секрет потребителя в настройках приложения.
- CallbackURL: укажите URL-адрес обратного вызова в настройках приложения.
При подключении через веб-приложение или если драйвер не авторизован для открытия окна браузера, вам необходимо обменять временные проверочные значения на токен доступа:
- Вызовите GetOAuthAuthorizationUrl. Хранимая процедура возвращает URL-адрес конечной точки OAuth.
- Авторизуйтесь и авторизуйте приложение. Вы будете перенаправлены обратно на URL-адрес обратного вызова. Если вы установите для параметра GrantType значение Implicit, URL-адрес обратного вызова будет содержать OAuthAccessToken и OAuthServerUrl в параметре строки запроса. Если вы установите для параметра GrantType значение code, URL-адрес обратного вызова будет содержать код проверки в параметре строки запроса с именем "code". Извлеките код верификатора и вызовите GetOAuthAccessToken.
Соответствующая часть:
Чтобы подключиться к данным, установите следующие свойства подключения:
- OAuthAccessToken
- OAuthServerUrl
Чтобы автоматически обновлять токен доступа по истечении срока его действия, установите для InitiateOAuth значение REFRESH и установите OAuthRefreshToken. В качестве альтернативы вызовите хранимую процедуру RefreshOAuthAccessToken по истечении срока действия токена доступа. Учитывая токен обновления в качестве входных данных, процедура возвращает действительный токен доступа OAuth.
В качестве альтернативы получению URL-адреса авторизации и регистрации пользователя в Salesforce вы можете настроить тип предоставления пароля, вызвав GetOAuthAccessToken, установив для GrantType значение PASSWORD. Здесь вам необходимо убедиться, что имя пользователя и пароль установлены в строке подключения в дополнение к идентификатору клиента и секрету вашего приложения. Обратите внимание, что для параметра InitiateOAuth необходимо установить значение OFF, чтобы тип предоставления пароля работал. Вы не можете обновить полученный таким образом токен. Преимущество этого метода заключается в удалении шага входа в систему для пользователей, которые не могут открыть веб-браузер, но он имеет недостаток, заключающийся в том, что учетные данные пользователя обмениваются в виде обычного текста между сервером и Salesforce.
Примечание. Вы можете настроить время ожидания сеанса в Salesforce, выбрав "Настройка"> "Настройка администрирования"> "Управление безопасностью"> "Настройки сеанса".