无法连接到Salesforce API

时间:2018-12-04 05:54:02

标签: salesforce

我们的一位客户给了我们这个api: https://xxxxx.my.salesforce.com/services/apexrest/fetchProjectDetails

与此同时,我从客户端得到以下内容 用户名,密码,安全令牌,消费者密钥和消费者秘密。

使用https://apitester.com/时出现CORS错误,但是我不确定这是否是问题,因为我正在发送POST请求。

我没有使用Salesforce API的经验,也无法使用API​​。

任何帮助将我指向正确方向的方法,我们将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

您需要2次API调用,其中1次登录

  • 获取最终服务器的地址(因为负载均衡器可能会将您发送到其他地方以触发后续请求)
  • 最重要的是获取有效的会话ID。

然后您可以运行实际的API调用。

这应该如何运行?作为后台系统集成(每次都有专用的SF用户,并且您需要存储凭据),或者您将向人们显示SF登录页面,他们将自己的凭据放入(您的应用程序看不到它们,只会看到最终会话) ID)。为工作选择正确的OAuth2流...

如果是系统集成,Unsupported Grant Type Salesforce OAUTH2可以帮助您开始。

理想情况下,它将具有更多的魔力(计划您的代码以重用会话ID,请不要每次都登录;如果会话过期正常失败,请发出新的登录调用。如果该登录因密码过期而终止,例如-通知SF团队...如果您使实际的处理代码与登录方法无关,则可以加分,因此希望最终可以使人们使用自己的SF凭据登录...)

获得会话ID后,您可以调用服务(理想情况下,它应为响应instance_url中的/services/apexrest/fetchProjectDetails。您只需将会话ID作为HTTP Authorization标头传递,值= Bearer sessionidgoeshere

此服务是您的客户定制的,因此我们在没有看到源代码的情况下无法为您提供更多帮助。这将是什么HTTP操作(GET,POST ...),什么参数-请与您的客户端联系。这种自定进度的培训可能会给您一些想法:https://trailhead.salesforce.com/en/content/learn/modules/apex_integration_services/apex_integration_webservices