0

我有一个自定义 salesfoce 网络服务,但要访问该网络服务,我们需要从 salesforce 企业 wsdl 登录。但我不想添加那个 wsdl 文件。有没有办法在自定义 web 服务上添加登录功能或在没有 wsdl web 服务的情况下登录???

4

2 回答 2

2

是的,请参阅SOAP request to APEX webservice without required authentication

进入设置中的站点详细信息页面,单击公共访问设置,然后在此处添加 Apex 类。这有效地授予您的匿名运行用户帐户(来宾许可证)直接访问此类的能力。

通过 Apex 和 Force.com 站点在公共网络服务中有更详细的说明。

请注意,您通过此 Web 服务公开的数据将不再是安全的。

于 2012-09-18T07:11:45.643 回答
1

正如您所提到的,您需要进行身份验证,登录方法不包含在自定义 apex WSDL 中,您有很多选择,具体取决于您正在构建的应用程序类型。

  1. 将企业或合作伙伴 WSDL 添加到您的应用程序并从那里调用登录。
  2. 使用交互式 OAuth流,这将导致您获得访问令牌和实例 Url,然后您可以将其与 apex WSDL 一起使用。
  3. 使用程序化 OAuth流(用户名/密码),再次生成访问令牌 * 实例 Url,然后您可以将其与 apex WSDL 一起使用。
  4. 如果您有基于 Web 的应用程序,您可以在 salesforce 中创建自定义链接/选项卡,以向您传递现有的 serverUrl/sessionId 信息。

对于 OAuth 流程,您将在您的 apex 请求中将接收到的访问令牌作为 sessionId 传递(就像您从登录中获取它一样),并且您可以将实例 URL 中的主机名与 apex WSDL 中的路径结合起来进行设置存根的端点 URL。

于 2012-09-19T15:42:40.190 回答