您需要的说明在文档的下方(也在下面复制):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;")
您可能需要先在 Python 之外测试连接并触发 OAuth 流。该过程的说明可以在帮助 ( http://cdn.cdata.com/help/RFE/odbc/pg_unixODBConlinux.htm ) 的 Unix ODBC 部分中找到,但也可以在下面复制。
从文档中复制的说明
创建连接的应用程序
要获取 OAuth 客户端凭据、使用者密钥和使用者密码:
- 登录 Salesforce.com。
- 在“设置”中,在“快速查找”框中输入“应用程序”,然后单击链接以创建应用程序。
- 在结果页面的 Connected Apps 部分中,单击 New。输入要在用户登录以授予应用程序权限时显示给用户的名称,以及联系人电子邮件地址。
- 单击启用 OAuth 设置并在回调 URL 框中输入一个值。如果您正在制作桌面应用程序,请将回调 URL 设置为http://localhost:33333或您选择的其他端口号。如果您正在制作 Web 应用程序,请将回调 URL 设置为 Web 应用程序上您希望用户在授权您的应用程序后返回的页面。
- 选择您的应用应向用户请求的权限范围。
- 单击您的应用名称以打开包含有关您的应用的信息的页面。将显示 OAuth 客户端凭据、使用者密钥和使用者密码。
从桌面应用程序向 Salesforce 进行身份验证
设置以下连接属性后,您就可以连接了:
- OAuthClientId:在您的应用设置中设置为使用者密钥。
- OAuthClientSecret:在您的应用设置中设置为使用者密码。
- CallbackURL:在您的应用设置中设置为回调 URL。
- InitiateOAuth:设置为 GETANDREFRESH。您可以使用 InitiateOAuth 来避免重复 OAuth 交换并手动设置 OAuthAccessToken 连接属性。
当您连接时,驱动程序会在您的默认浏览器中打开 OAuth 端点。登录并授予应用程序权限。然后驱动程序完成以下 OAuth 过程:
- 获取回调 URL 并设置访问令牌和OAuthServerUrl以对请求进行身份验证。
- 将 OAuth 值保存在OAuthSettingsLocation中以跨连接保持不变。
- 将返回的刷新令牌交换为新的有效访问令牌。
使用 unixODBC
定义 DSN
odbc.ini
通过向或中添加条目来创建 DSN .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
测试连接
您可以使用 unixODBC 测试工具 isql 从命令行对 Salesforce 执行 SQL 查询。测试连接时,使用 -v 标志从驱动程序管理器和驱动程序输出任何消息。
isql -v "CData Salesforce Source"