Tez*_*zyn 2 api wsdl web-services salesforce
我正在开发salesforce功能,我们尝试将自定义类中的单个Web Service方法公开给"Partner",以便他们可以生成潜在客户.
类/方法已经创建/测试并按预期运行,因此我们正在开发实现.
我一直在研究Salesforce的所有Web服务文档和食谱配方,但我看到的所有内容都只涉及使用Enterprise或Partner WSDL文件,这会给他们更多的访问权限,我相信应该是必需的.
如果我导入从类本身生成的WSDL文件,我可以访问这些方法,但我似乎无法找到任何登录方式(使用他们的示例作为参考).
我这里有2个基本问题.
WSDL本身只是Web服务的定义,并不控制对您的组织的实际访问.要访问您的组织,必须在每个Web服务请求中包含会话ID.会话ID与组织中的给定用户相关联,因此您还可以通过为其提供自己的配置文件并锁定对其所需内容的访问来控制他们可以访问的内容.配置文件与对象/字段相关联,而不是与Web服务本身相关联,考虑他们在数据方面需要访问的内容,因为他们总是可以使用相同的会话来访问其他Web服务.配置文件中还有Apex类级访问控制,但这并不能阻止它们通过SOAP API执行相同的数据操作,因此请确保您的配置文件仅显示他们需要访问的内容并且将强制执行到处.
至于获取会话ID,它在某种程度上取决于您与它们的接口以及它们的应用程序是什么样的.通常,推荐的方法是使用OAuth(在Salesforce帮助中称为"远程访问"),这样可以使用户名和密码不必在其应用程序中使用,而是最终直接发送到Salesforce用户.根据应用程序的不同,可以选择一些不同的流程,并在"帮助"中进行了说明.该REST API文档有一个很好的介绍使用OAuht获取会话ID(又名在OAuth的"令牌").说到REST,您甚至可以考虑使用新的Apex REST API,它允许您从Apex制作类似的自定义Web服务,但使用REST接口.
合作伙伴和企业API也有一个login()方法,这很方便,因为它也是基于SOAP的,但由于应用程序必须直接处理用户名和密码,因此不再受欢迎.如果执行此选项,则可以使用Partner和Enterprise API登录,获取会话ID,然后切换到自定义Web服务.所以,是的,对于这个选项,你必须同时使用你的WSDL和Partner或Enterprise WSDL,然后忽略其他方法,但同样,那里的方法并不意味着他们可以访问它们(例如,如果你删除从他们的配置文件中删除给定的对象类型,他们将无法使用delete()方法).
| 归档时间: |
|
| 查看次数: |
8080 次 |
| 最近记录: |