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 OAuth 与 REST API 使用 Javascript
在salesforce 营销云中,如何进行REST api 调用?如何建立网址?