Salesforce REST API 回调 URL 是不是需要是 HTTPS?

Posted

技术标签:

【中文标题】Salesforce REST API 回调 URL 是不是需要是 HTTPS?【英文标题】:Does the Salesforce REST API callback url need to be HTTPS?Salesforce REST API 回调 URL 是否需要是 HTTPS? 【发布时间】:2011-11-14 13:36:56 【问题描述】:

我一直在尝试连接到 Salesforce REST API,但运气不佳。 Salesforce REST API Quick Start Guide 声明需要 HTTPS 回调 url,但在示例中他们使用 https://localhost:8443/RestTest/oauth/_callback 作为回调 url。

我尝试使用 php Salesforce REST API example 在我的测试服务器 (HTTP) 上进行连接,但 Salesforce 似乎已经适应并进入了重定向循环。

如果我没有 SSL 证书,是否可以连接到 Salesforce REST API?如果可以,我应该怎么做?作为记录,我的应用程序是用 PHP 编写的,而不是像大多数官方示例那样是 Java。

【问题讨论】:

你想通过举这个例子来说明什么?示例是 HTTPS。 “但是”什么? 但它位于“localhost”的开发环境中。如果可以在本地主机上使用 https,我很想知道如何。 是什么让localhost 如此特别? google.com.au/… 或 google.com.au/… - 只需获得证书即可。 对于我的本地机器 (OS X),似乎可以进行自我认证:hints.macworld.com/article.php?story=20041129143420344。去试试吧。 您真的需要 OAuth 身份验证与会话 ID 吗?您的回调 URL 是否与(在 Salesforce 中)“设置 | 开发 | 远程访问”下设置的相同 【参考方案1】:

对于 localhost,它接受 http,您应该使用 https 来代替 localhost。 但是请求中的重定向 URI 和连接的应用程序中的回调 url 应该匹配。

您可以在连接的应用程序和请求中使用http://localhost:8080/<any_page_in_ur_project>

【讨论】:

【参考方案2】:

我从未使用过 Salesforce REST API,但我已经阅读了您链接到的页面。

OAuth 回调 URL 必须是 HTTPS。您似乎已经在文档中自己发现了这一点:

一定要安全:http://不行,只有https://

...还有例子:

@WebInitParam(name = "redirectUri", value = 
    "https://localhost:8443/RestTest/oauth/_callback")

至于你的其他问题:

如果我没有 SSL 证书,是否可以连接到 Salesforce REST API?如果可以,我应该怎么做?

大概是通过第二种方法,正如您链接到的页面上的第一句话所暗示的那样:

您可以使用 OAuth 2.0 或通过传递会话 ID 来设置授权。

...

会话 ID 授权

如果您不处理其他人的密码,则可以使用会话 ID 而不是 OAuth 2.0 访问令牌:

    获取会话 ID,例如,SOAP Web 服务 API login() 调用返回会话 ID。您可能还拥有会话 ID,例如作为 Apex 当前上下文的一部分。

    向资源发送请求时使用会话 ID。用 ID 替换令牌值。

因此,如果您不处理其他人的密码(无论这意味着什么),您可以使用 login() 获取会话 ID 并从那里与网络服务进行通信。

【讨论】:

只要你在回调 URL 为 https 的地方运行它,PHP Salesforce REST API Example 就可以工作。 localhost 允许 http,其他不允许

以上是关于Salesforce REST API 回调 URL 是不是需要是 HTTPS?的主要内容,如果未能解决你的问题,请参考以下文章

Salesforce REST API 登录?

在Salesforce中通过REST API编辑自定义对象

Salesforce OAuth 与 REST API 使用 Javascript

在salesforce 营销云中,如何进行REST api 调用?如何建立网址?

我可以使用现有的SOAP API会话验证Salesforce REST API吗?

SalesForce.com Rest API身份验证。它是否允许双腿oauth交易