如何使用python通过CData ODBC驱动程序访问Salesforce数据,并使用来自OAuth身份验证的用户的Salesforce访问令牌?

2024-03-28 21:01:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个web应用程序,我想将Salesforce与之集成。因此,当OAuth2授权从用户端发生时(他登录并授予我们的应用程序访问他的数据的权限)。在用户提供访问权限后,我将获得以下提到的参数

access_token
refresh_token
instance_url
issued_at
signature
scope
token_type

使用上述参数,我应该通过使用python3的CData通过SalesforceAPI获取数据。因此,我的问题是如何通过CData实现这一点。我希望我在这里讲得通。我已经看过你寄来的文件了。我无法理解。你能详细说明一下吗

我发现只有一个文档通过下面提到的python连接。它不包含关于使用访问令牌的信息。 http://cdn.cdata.com/help/RFE/odbc/pg_odbclangpythonconnect.htm

我浏览了与Salesforce相关的CData文档,但不知道该怎么做。我不应该使用用户名、密码、客户id、客户机密。有人能帮我吗


Tags: 数据用户文档tokenweb应用程序权限参数
1条回答
网友
1楼 · 发布于 2024-03-28 21:01:11

使用OAuth和CData ODBC驱动程序连接Salesforce的说明如下:http://cdn.cdata.com/help/RFE/odbc/pg_oauthcustomappcreate.htm(复制如下)


通过Web应用程序向Salesforce进行身份验证

要获取访问令牌,请设置以下连接属性:

  • OAuthClientId:设置应用程序设置中的消费者密钥
  • OAuthClientSecret:在应用程序设置中设置为消费者机密
  • 回调URL:设置为应用程序设置中的回调URL

通过web应用程序连接时,或者如果驱动程序无权打开浏览器窗口,则需要为访问令牌交换临时验证值:

  1. 调用GetOAuthAuthorizationUrl。存储过程将URL返回给OAuth端点
  2. 登录并授权应用程序。您将被重定向回回调URL。如果将GrantType参数设置为Implicit,则回调URL将在查询字符串参数中包含OAuthAccessTokenOAuthServerUrl。如果将GrantType参数设置为code,则回调URL在名为“code”的查询字符串参数中包含验证器代码。提取验证器代码并调用GetOAuthAccessToken

相关部分:

要连接到数据,请设置以下连接属性:

  • OAuthAccessToken
  • OAuthServerUrl

要在访问令牌过期时自动刷新,请将InitiateOAuth设置为refresh,并设置oauthrefreshttoken。或者,在访问令牌过期时调用RefreshOAuthAccessToken存储过程。给定一个刷新令牌作为输入,该过程返回一个有效的OAuth访问令牌

作为检索授权URL并让用户登录Salesforce的替代方法,您可以通过调用GetOAuthAccessToken,将GrantType设置为password来设置密码授予类型。在这里,除了客户端ID和应用程序的机密之外,还需要确保在连接字符串中设置用户名和密码。请注意,必须将InitiateAuth设置为OFF,密码授予类型才能工作。无法刷新通过这种方式获得的令牌。此方法的优点是为无法打开web浏览器的用户删除登录步骤,但缺点是服务器和Salesforce之间以纯文本形式交换用户凭据

注意:您可以在Salesforce中导航到Setup>;管理设置>;安全控制>;会话设置

相关问题 更多 >