【问题标题】:Access Salesforce data using python使用 python 访问 Salesforce 数据
【发布时间】:2013-09-15 03:02:42
【问题描述】:

使用python访问SF数据最简单的方法是什么?

我需要它用于只读目的。

我尝试过使用 BeatBox,但它似乎与 3.3 不兼容。

【问题讨论】:

    标签: python api salesforce


    【解决方案1】:

    尝试两个库:

    RestForce

    simple-salesforce

    【讨论】:

      【解决方案2】:

      salesforce api 是使用称为SOAP 的 W3C 标准构建的,因此您可以尝试将 WSDL 文件通过管道传输到通用 SOAP 库中,而不是专用的 Salesforce 库。 SUDS 是一个成熟的、积极维护的库,我刚刚用它成功完成了 salesforce 元数据 api 调用,看起来像

      from suds.client import Client
      
      
      _SF_PRODUCT_VERSION = (0, 0, 0)
      USER_AGENT_STR = '/'.join(['Salesforce',
                                 _SF_PRODUCT_NAME,
                                 '.'.join(str(x) for x in _SF_PRODUCT_VERSION)])
      
      def login(username, password, token):
              WSDL_URL = 'file://' + path.abspath(_ENTERPRISE_WSDL_FILE)
          suds_client = Client(WSDL_URL)
          suds_client.set_options(headers = {
                  'User-Agent': USER_AGENT_STR,
                  })
          login_result = suds_client.service.login(username, password+token)
          return login_result
      
      login_result = login(SF_USERNAME, SF_PASSWORD, SF_TOKEN)
      suds_client = Client(url=METADATA_WSDL_URL, location=login_result.metadataServerUrl)
      session_header = suds_client.factory.create('SessionHeader')
      session_header.sessionId = login_result['sessionId']
      suds_client.set_options(
          headers = {
              'User-Agent': USER_AGENT_STR,
              },
          soapheaders = {
              'SessionHeader': session_header,
              })
      describe_metadata_result = suds_client.service.describeMetadata(29.0)
      print "describe metadata result"
      print describe_metadata_result
      

      (为了保护无辜,有些名字已经改了。)

      所以它并不像它可能的那么简单,但是在这个非常成熟的 SOAP 库之上构建一些额外的时间,它可能会比一些专用的 salesforce 库更健壮。一方面,添加

      logging.basicConfig(level=logging.INFO)
      logging.getLogger('suds.client').setLevel(logging.DEBUG)
      

      在 api 调用将打印通过网络发送的 xml 请求和响应之前,这非常有用。

      有一个基于 SUDS 构建的名为 python-salesforce-toolkit 的专用库,但它和它所构建的 SUDS 版本都不再维护。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-02
        • 2010-12-04
        • 2016-12-03
        • 1970-01-01
        • 2011-11-22
        相关资源
        最近更新 更多